laravel 递归 无限层级分类
递归遍历
数据格式: "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 递归 无限层级分类相关推荐
- php 递归无限极分类和层级展示(适用于权限管理和分类管理功能)
php 递归无限极分类和层级展示(适用于权限管理和分类管理功能) 第一:权限管理层级展示 /*** 数组的合并,并加上html标识前缀* @param array $data* @param int ...
- php递归无限极分类
递归无限级分类有几种形式,我这里仅仅举例比較经常使用的三种: 第一种:返回有排序的数组: <?php$data = array(1 => array('id' => 1,'pid' ...
- php 递归实现无限极分类和排序_php递归无限极分类
递归无限级分类有几种形式,我这里仅仅举例比較经常使用的三种: 第一种:返回有排序的数组: $data = array( 1 => array( 'id' => 1, 'pid' => ...
- php无限极分类实例,php递归无限极分类实例
无限级分类原理简介 无限分类看似"高大上",实际上原理是非常简单的 .无限分类不仅仅需要代码的巧妙性,也要依托数据库设计的合理性.要满足无限级分类,数据库需要有两个必须的字段,id ...
- php 递归实现无限极分类和排序_Laravel框架实现无限极分类
php中文网最新课程 每日17点准时技术干货分享 最近开发商品功能,在尝试递归和引用方式后,蓦然回首,突然发现laravel框架有更简单高效的实现方式,无限极分类最佳实践,open code与大家共享 ...
- Php无限层级并显示层级数
今天在处理递归无限层级菜单时,遇到一个稍微烧脑的问题,如何显示当前节点所在的层级数. 废话不多说,我们先看个直观的无限层级: <?php // 这里的arr是直接从数据库取出的,仅作为测试数据 ...
- php无极分类非递归_无限极分类算法,对你一定有帮助
无限级分类是开发中常见的情况,也经常会在面试,主考官问到,笔试中遇到,因此本文对常见的无限极分类算法进行总结归纳,其实大多数就是迭代与递归. 1.循环迭代实现 $arr = [1=>['id'= ...
- php 递归实现无限极分类和排序_无限极分类的两种方式,递归和引用
说到无限极分类,比较常见的做法是在建表的时候,增加一个parnet_id字段用来区别自己所属的分类(是顶级分类还是子分类) 由于展示数据的时候,需要表达出这种所属关系,所以必然要在读取数据的时候进行一 ...
- php实现无限极分类递归调用
工作中经常使用到使用php递归来进行数据库数据的树状显示,层级显示,无限极分类等 数据库设计的逻辑大概为 比较常见的做法是在建表的时候,增加一个PID字段用来区别自己所属的分类 如下: $array ...
- Java中的无限层级递归树前后端操作解决方案
引言: 抖音真是一个神奇的软件,前两天脑海中浮现了一首歌,知道歌曲的调调,今天打算写博客之前刷了一下抖音,抖音的推荐算法居然给我推送了这首歌,这首歌叫做<一开始说陪你到老的人现在他还好吗> ...
最新文章
- Ubuntu 14.04 64bit上查看网页中的cookies
- 曲线数学NURBS之bezier曲线
- netbean创建jsf项目
- 畅捷通t+标准版操作手册_外网IP访问畅捷通T+教程
- composer 使用指南
- GPS实验三:GPS接收机野外数据采集
- Android 获取短信验证码,自动填充
- 堆 堆栈 java_java的栈和堆
- opecv-putText
- FRR BGP 协议分析2 -- 创建对等体的命令分析
- cisco路由器菜单的制作
- sql server 查询当前月份日期列表数据
- 中文维基百科数据爬取与预处理
- gps面积测量 java_GPS面积距离测量
- python变量与声明
- Android 5.1添加字库
- html的高度塌陷,html高度塌陷以及定位的理解
- 计算机学院毕业生祝福,暖心的毕业祝愿赠言
- Vanilla JavaScript 哈希 URL 路由器
- 全桥驱动芯片-市场现状及未来发展趋势