递归实现无限分类
$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
Copyright © 2012-2025世敏网络 版权所有 闽ICP备18026760号-4 网站地图 Sitemap