<?php //瞎写的 // 链接数据库 $link = mysqli_connect('localhost','root','root'); if($link == null){ exit; } mysqli_select_db($link,'test'); $link->query("SET NAMES utf8"); $sql = "select * from tp_goods_categorys"; $res = mysqli_query($link,$sql); while($res && $row = mysqli_fetch_assoc($res)) { $list[] = $row; } echo '<pre>'; print_r(res($list)); function res($items){ $tree = array(); foreach($items as $key =>$val){ $list = explode(',',$val['categorys_path']); switch(count($list)){ case 1: $tree[$val['id']] = $val; break; case 2: $tree[$val['categorys_pid']]['son'][$val['id']] = $val; break; case 3: $tree[$list[1]]['son'][$list[2]]['son'] = $val; break; } } return $tree; }
<?php //递归 $array = array( array('id' => 1, 'pid' => 0, 'name' => '湖北省'), array('id' => 2, 'pid' => 0, 'name' => '北京市'), array('id' => 3, 'pid' => 1, 'name' => '武汉市'), array('id' => 4, 'pid' => 2, 'name' => '朝阳区'), array('id' => 5, 'pid' => 2, 'name' => '通州区'), array('id' => 6, 'pid' => 4, 'name' => '望京'), array('id' => 7, 'pid' => 4, 'name' => '酒仙桥'), array('id' => 8, 'pid' => 3, 'name' => '武昌区'), array('id' => 9, 'pid' => 1, 'name' => '武安市'), ); function cation($arr,$num=0,$m=1) { $list = []; foreach($arr as $k=>$v){ if($v['pid'] === $num){ $v['level'] = $m; $v['son'] = cation($arr,$v['id'],$m+1); $list[] = $v; } } return $list; } $list = cation($array); echo '<pre>'; print_r($list); echo '</pre>';