$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);![_](https://yqfile.alicdn.com/e9e56bca612c75b21e659db354d664d712005a55.png)
無限極分類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.