時間:2020-09-22
瀏覽量:
遞歸實現無限分類
$data = [ 0=>['id'=>1,'name'=>'電腦','father'=>0], 1=>['id'=>2,'name'=>'手機','father'=>0], 2=>['id'=>3,'name'=>'書籍','father'=>0], 3=>['id'=>4,'name'=>'臺式機','father'=>1], 4=>['id'=>5,'name'=>'筆記本','father'=>1], 5=>['id'=>6,'name'=>'平板','father'=>1], 6=>['id'=>7,'name'=>'華為','father'=>2], 7=>['id'=>8,'name'=>'蘋果','father'=>2], 8=>['id'=>9,'name'=>'教科書','father'=>3], 9=>['id'=>10,'name'=>'小學','father'=>9], 10=>['id'=>11,'name'=>'顯示器','father'=>4], 11=>['id'=>12,'name'=>'榮耀','father'=>7], ]; /** * 遞歸生成分類樹 * @param $data 分類數據 * @param $pid 父級id * @param $level 當前層級 * @return array */ function getTree($arr,$pid,$level){ static $tree=[]; foreach($arr as $key=>$val) { if($val['father'] == $pid) { $flag = str_repeat('└―',$level); $val['name'] = $flag.$val['name']; $tree[] = $val; getTree($arr , $val['id'] ,$level+1); } } return $tree; } $tree = getTree($data,0,0); //foreach遍歷輸出分類數據 foreach ($tree as $val){ echo $val['name'].'<br>'; }
RELATED RECOMMEND