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