递归遍历

数据格式: "data": [{"label": "技术部","id": "1","parent_id": "0","children": [{"label": "财务部","id": "22","parent_id": "1"},{"label": "菜鸟部","id": "3","parent_id": "1","children": [{"label": "人事部","id": "4","parent_id": "3"}]}]}    ]
/*** 分类树状图** @param $request* @return mixed*/
public function index($request)
{//如果数据太大,建议分批获取数据$collection = $this->model->select('name as label', 'id', 'parent_id')->get()->toArray();return $this->getDepartments($collection);
}/*** 递归获取部门** @param $name* @param $collection* @param string $parentId* @param null $item* @return array*/
public function getDepartments(&$collection, $parentId = '0', &$item = null, $name = 'children')
{$tree = [];foreach ($collection as $key => $value) {if ($value['parent_id'] == $parentId) {self::shiftCollection($collection, $value, $key);if ($item) $item[$name][] = $value;else $tree[] = $value;}};return $tree;
}/*** 删除已分配的元素(可减少循环, 减少内存占用)** @param $key* @param $collection* @param $value*/
public function shiftCollection(&$collection, &$value, $key)
{unset($collection[$key]);self::getDepartments($collection, $value['id'], $value);
}

laravel 递归 无限层级分类相关推荐

  1. php 递归无限极分类和层级展示(适用于权限管理和分类管理功能)

    php 递归无限极分类和层级展示(适用于权限管理和分类管理功能) 第一:权限管理层级展示 /*** 数组的合并,并加上html标识前缀* @param array $data* @param int ...

  2. php递归无限极分类

    递归无限级分类有几种形式,我这里仅仅举例比較经常使用的三种: 第一种:返回有排序的数组: <?php$data = array(1 => array('id' => 1,'pid' ...

  3. php 递归实现无限极分类和排序_php递归无限极分类

    递归无限级分类有几种形式,我这里仅仅举例比較经常使用的三种: 第一种:返回有排序的数组: $data = array( 1 => array( 'id' => 1, 'pid' => ...

  4. php无限极分类实例,php递归无限极分类实例

    无限级分类原理简介 无限分类看似"高大上",实际上原理是非常简单的 .无限分类不仅仅需要代码的巧妙性,也要依托数据库设计的合理性.要满足无限级分类,数据库需要有两个必须的字段,id ...

  5. php 递归实现无限极分类和排序_Laravel框架实现无限极分类

    php中文网最新课程 每日17点准时技术干货分享 最近开发商品功能,在尝试递归和引用方式后,蓦然回首,突然发现laravel框架有更简单高效的实现方式,无限极分类最佳实践,open code与大家共享 ...

  6. Php无限层级并显示层级数

    今天在处理递归无限层级菜单时,遇到一个稍微烧脑的问题,如何显示当前节点所在的层级数. 废话不多说,我们先看个直观的无限层级: <?php // 这里的arr是直接从数据库取出的,仅作为测试数据 ...

  7. php无极分类非递归_无限极分类算法,对你一定有帮助

    无限级分类是开发中常见的情况,也经常会在面试,主考官问到,笔试中遇到,因此本文对常见的无限极分类算法进行总结归纳,其实大多数就是迭代与递归. 1.循环迭代实现 $arr = [1=>['id'= ...

  8. php 递归实现无限极分类和排序_无限极分类的两种方式,递归和引用

    说到无限极分类,比较常见的做法是在建表的时候,增加一个parnet_id字段用来区别自己所属的分类(是顶级分类还是子分类) 由于展示数据的时候,需要表达出这种所属关系,所以必然要在读取数据的时候进行一 ...

  9. php实现无限极分类递归调用

    工作中经常使用到使用php递归来进行数据库数据的树状显示,层级显示,无限极分类等 数据库设计的逻辑大概为 比较常见的做法是在建表的时候,增加一个PID字段用来区别自己所属的分类 如下: $array ...

  10. Java中的无限层级递归树前后端操作解决方案

    引言: 抖音真是一个神奇的软件,前两天脑海中浮现了一首歌,知道歌曲的调调,今天打算写博客之前刷了一下抖音,抖音的推荐算法居然给我推送了这首歌,这首歌叫做<一开始说陪你到老的人现在他还好吗> ...

最新文章

  1. Ubuntu 14.04 64bit上查看网页中的cookies
  2. 曲线数学NURBS之bezier曲线
  3. netbean创建jsf项目
  4. 畅捷通t+标准版操作手册_外网IP访问畅捷通T+教程
  5. composer 使用指南
  6. GPS实验三:GPS接收机野外数据采集
  7. Android 获取短信验证码,自动填充
  8. 堆 堆栈 java_java的栈和堆
  9. opecv-putText
  10. FRR BGP 协议分析2 -- 创建对等体的命令分析
  11. cisco路由器菜单的制作
  12. sql server 查询当前月份日期列表数据
  13. 中文维基百科数据爬取与预处理
  14. gps面积测量 java_GPS面积距离测量
  15. python变量与声明
  16. Android 5.1添加字库
  17. html的高度塌陷,html高度塌陷以及定位的理解
  18. 计算机学院毕业生祝福,暖心的毕业祝愿赠言
  19. Vanilla JavaScript 哈希 URL 路由器
  20. 全桥驱动芯片-市场现状及未来发展趋势

热门文章

  1. ipad文献管理软件_五款常用的文献管理神软件
  2. 如何在线倍速观看百度网盘学习视频并快速做笔记
  3. Datalogic 得利捷最新推出Matrix 320 5MP:不仅限于内部物流追溯
  4. 深度学习入门(一)——深度学习如何入门?
  5. nfc卡模式与标准模式_NFC相关标准
  6. linux的mysql数据配置文件
  7. 阅读 深入理解JVM虚拟机笔记一
  8. MDT实现windows系统批量部署
  9. 通信工程专业高级工程师职称申报经验分享
  10. Go语言核心36讲(Go语言实战与应用十九)--学习笔记