無限極分類

$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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章