<?php$users = [1 => ['id' => 1, 'name' => '及时雨(宋江)', 'leader_id' => 0],2 => ['id' => 2, 'name' => '玉麒麟(卢俊义)', 'leader_id' => 0],3 => ['id' => 3, 'name' => '智多星(吴用)', 'leader_id' => 1],4 => ['id' => 4, 'name' => '神机军师(朱武)', 'leader_id' => 2],5 => ['id' => 5, 'name' => '黑旋风(李逵)', 'leader_id' => 1],6 => ['id' => 6, 'name' => '浪子(燕青)', 'leader_id' => 2],7 => ['id' => 7, 'name' => '没面目(焦挺)', 'leader_id' => 5],8 => ['id' => 8, 'name' => '白花蛇(杨春)', 'leader_id' => 4],9 => ['id' => 9, 'name' => '跳涧虎(陈达)', 'leader_id' => 8],
];$tree = $group_by_higher = [];
foreach ($users as $user) {if ($user['leader_id'] == 0) {$user['sublist'] = [];$tree[] = $user;} else {if (!isset($group_by_higher[$user['leader_id']])) {$group_by_higher[$user['leader_id']] = [];}$group_by_higher[$user['leader_id']][] = $user;}
}
foreach ($tree as $key => $item) {$tree[$key] = tree_recursion($users, $group_by_higher, $item['id']);
}print_r($tree);function tree_recursion($list, $group, $id)
{$item = $list[$id];$item['sublist'] = [];$result = $item;if (isset($group[$id])) {foreach ($group[$id] as $item) {$result['sublist'][] = tree_recursion($list, $group, $item['id']);}}return $result;
}

返回值:

Array
([0] => Array([id] => 1[name] => 及时雨(宋江)[leader_id] => 0[sublist] => Array([0] => Array([id] => 3[name] => 智多星(吴用)[leader_id] => 1[sublist] => Array())[1] => Array([id] => 5[name] => 黑旋风(李逵)[leader_id] => 1[sublist] => Array([0] => Array([id] => 7[name] => 没面目(焦挺)[leader_id] => 5[sublist] => Array())))))[1] => Array([id] => 2[name] => 玉麒麟(卢俊义)[leader_id] => 0[sublist] => Array([0] => Array([id] => 4[name] => 神机军师(朱武)[leader_id] => 2[sublist] => Array([0] => Array([id] => 8[name] => 白花蛇(杨春)[leader_id] => 4[sublist] => Array([0] => Array([id] => 9[name] => 跳涧虎(陈达)[leader_id] => 8[sublist] => Array())))))[1] => Array([id] => 6[name] => 浪子(燕青)[leader_id] => 2[sublist] => Array()))))

PHP递归获取无限极分类相关推荐

  1. PHP递归实现无限极分类

    PHP递归实现无限极分类 摘要 今天在编码的时候要用到二级的栏目分类,所以顺便就把无限极分类给整理了一下,采用的是递归方法 //实现无限级分类public function getTree(){$ca ...

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

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

  3. php不使用递归实现无限极分类

    无限极分类常用的是递归,但是比较不好理解,其实可以用数据库path,pid两个字段的设计来实现无限分类的功能 1.数据库设计 通过上图可以看出pid就是该栏目的父id,而path = 父path+pi ...

  4. php 递归实现无限极分类和排序_php 无限极分类以及使用递归实现的排序方法

    至于添加删除之类的功能我就不多写了!仔细看看就知道这么用了. 难的是显示方面 希望高手扩展一下! 这是类 代码如下:<?php /*=============================== ...

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

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

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

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

  7. php 递归实现无限极分类和排序_PHP无限级分类实现层级值间用字符串拼接

    题目: 如下数组,实现这么一个结果value=10-101-1011,label=万达-蜘蛛侠-已购票,其实就是层级值间用字符串拼接. $example=array(array('value'=> ...

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

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

  9. php 递归实现无限极分类和排序_PHP实现选择排序

    这次说说选择排序. 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻 ...

最新文章

  1. 2018机器阅读理解技术竞赛,奇点机智获第一名
  2. java 英文字符 字节_3、在JAVA语言中,每个英文字符占 个字节,每个中文汉字占( )个字节。...
  3. Asp.net控件开发学习笔记(四)---Asp.net服务端状态管理
  4. html怎样设置字体不能被选中,css设置:图片文字等不能被选择
  5. CircleList
  6. android 4.0.3固件,Vi30豪华版_Android4.0.3-1.0测试版固件刷机教程【MM刷机】
  7. win10 WSL windows subsystem for linux update setup wizard ended prematurely
  8. 手把手入门神经网络:从初等数学的角度初探神经网络
  9. 金山安全实验室公布中国互联网六大类钓鱼网站
  10. 程序员常去的103个网站(转)
  11. php文件上传格式限制,如何在PHP中限制文件上传类型的文件大小?
  12. asp调用数据库汉字显示乱码解决方案
  13. Atlassian JIRA 插件开发之一 环境搭建
  14. WIN8禁用休眠功能
  15. 第3章(3.2~3.7节)线性/Softmax回归实现【深度学习基础】--动手学深度学习【Tensorflow2.0版本】
  16. 单反相机坏点和噪点测试软件,正确对待相机的坏点和噪点
  17. web前端实习一个月的心得体会
  18. adb shell使用教程+sqlite3使用示例
  19. AD域控服务器问题解决记录--lsass.exe流量异常
  20. 计算机出现假桌面怎么解决办法,W10电脑下“AppHangXProcB1”导致桌面频繁假死如何解决?...

热门文章

  1. CSS特效--流动字体
  2. 搭摄影棚卖“神药” 宁波查获集团性虚假宣传会销大案
  3. 驱动python_光驱驱动下载_万能光驱驱动(万能DVD光驱CD光驱驱动) 2018 官方版_极速下载站...
  4. 京东2019年将淘汰10%副总裁级别以上的高管!
  5. 潜水侠完成千万元级天使轮融资,为客户提供水下综合解决方案
  6. vue中v-html渲染出来的元素添加样式
  7. 游戏地图编辑器使用指南
  8. powerdisinger 中将comment复制到name
  9. win7招不到网络计算机,win7网络优化怎么弄_教你几招提高Windows7系统电脑网速的方法...
  10. Shaders for Game Programmers and Artists(4) - 热雾效果