/**
* 递归实现无限极分类
* @param $array 分类数据
* @param $pid 父ID
* @param $level 分类级别
* @return $list 分好类的数组 直接遍历即可 $level可以用来遍历缩进
*/ public function getTree($array, $pid = 420, $level = 0)
{ //声明静态数组,避免递归调用时,多次声明导致数组覆盖
static $list = [];
foreach ($array as $key => $value) {
//第一次遍历,找到父节点为根节点的节点 也就是pid=0的节点
if ($value['parentcode'] == $pid) {
//父节点为根节点的节点,级别为0,也就是第一级
$value['level'] = $level;
//把数组放到list中
$list[] = $value;
//把这个节点从数组中移除,减少后续递归消耗
unset($array[$key]);
//开始递归,查找父ID为该节点ID的节点,级别则为原级别+1
$this->getTree($array, $value['code'], $level + 1); }
}
return $list;
}

最新文章

  1. 给自定义cell赋值
  2. SQL匹配顺序
  3. [ACM_几何] Metal Cutting(POJ1514)半平面割与全排暴力切割方案
  4. JJ Ying:越来越跨界的界面设计
  5. Sharepoint 列表ItemAdding事件判断文件类型、获取当前上传的文件
  6. php 日期 - 获取当月最后一天
  7. java参数传递(值传递还是引用传递)
  8. IBM新合作伙伴计划助力企业转型升级
  9. dedecms 在php5.4以上环境下 无法保存中文
  10. display设置弹性盒布局
  11. kalinux 五笔安装
  12. json -- dump load dumps loads 简单对比
  13. 使用 PM2 管理nodejs进程
  14. saltstack基础篇
  15. 响应式设计:根据不同设备引不同css样式
  16. iOS 数组集合操作(交集,并集,差集,子集)
  17. docker获取镜像很慢解决办法
  18. php与JAVA的RSA加密互通
  19. srvctl和crs_start命令无法启动oracle RAC实例, 但sqlplus可以启动
  20. android Menory 小结

热门文章

  1. [版本控制-Git]-git学习总结
  2. 数值分析之解线性方程组的直接方法 5.X
  3. vue3新特性的使用
  4. vue2的反向代理
  5. minio对象存储集群安装
  6. 新手搭建Git与项目整合
  7. vmware 克隆虚拟机前删除网络文件
  8. java-文件IO常用操作对比
  9. 国产DP4344兼容替代CSM4344 192K双通道输出数模转换芯片
  10. for in 和 for of 的区别(枚举解释)