$arr = array(
0=>[
'id'=>1,
'name'=>'科技',
'pid'=>0,
],
1=>[
'id'=>2,
'name'=>'人工智能',
'pid'=>1,
],
2=>[
'id'=>3,
'name'=>'美食',
'pid'=>0
],
3=>[
'id'=>4,
'name'=>'重庆小面',
'pid'=>3
],
4=>[
'id'=>5,
'name'=>'机器人',
'pid'=>2
]
);
public function category($arr,$pid=0,$level=0){
//定义一个静态变量,存储一个空数组,用静态变量,是因为静态变量不会被销毁,会保存之前保留的值,普通变量在函数结束时,会死亡,生长周期函数开始到函数结束,再次调用重新开始生长
//保存一个空数组
static $list=array();
//通过遍历查找是否属于*父类,pid=0为*父类,
foreach($arr as $value){
//进行判断如果pid=0,那么为*父类,放入定义的空数组里
if($value['pid']==$pid){
//添加空格进行分层
$arr['level']=$level;
$list[]=$value;
//递归点,调用自身,把*父类的主键id作为父类进行再调用循环,空格+1
self::category($arr,$value['id'],$level+1);
}
}
return $list;//递归出口
}
$list = category($arr,0,0);
相关文章
- 08-01RFID电子标签的分类及区别
- 08-01SPOJ 2916 Can you answer these queries V(线段树-分类讨论)
- 08-01一种联合分类与检测训练的方法——YOLO9000
- 08-0125 触发器逻辑功能的分类
- 08-01select document library from certain list 分类: Sharepoint 2015-07-05 07:52 6人阅读 评论(0) 收藏
- 08-01教程 | 如何使用TensorFlow实现音频分类任务
- 08-01图像分类资源汇总----持续跟新
- 08-01图像分类任务不用冷启动,PaddlePaddle一口气发布十大预训练模型
- 08-01Andrew Y. Ng式ResNet在MIT-BIH上的Inter-Patient分类实现(1)
- 08-01用于图像分类的经典的卷积神经网络CNN