递归
有这么一个数组
Array
(
[0] => Array
(
[id] => 49
[name] => 体育部
[parent_id] => 46
[children] => Array
(
[0] => Array
(
[id] => 52
[name] => 体育1专业
[parent_id] => 49
[children] => Array
(
[0] => Array
(
[id] => 57
[name] => 1班
[parent_id] => 52
)
[1] => Array
(
[id] => 58
[name] => 2班
[parent_id] => 52
)
[2] => Array
(
[id] => 59
[name] => 外留学班
[parent_id] => 52
)
)
)
[1] => Array
(
[id] => 53
[name] => 体育2专业
[parent_id] => 49
[children] => Array
(
[0] => Array
(
[id] => 60
[name] => 1班
[parent_id] => 53
)
[1] => Array
(
[id] => 61
[name] => 2班
[parent_id] => 53
)
[2] => Array
(
[id] => 62
[name] => 3班
[parent_id] => 53
)
[3] => Array
(
[id] => 63
[name] => 4班
[parent_id] => 53
)
[4] => Array
(
[id] => 64
[name] => 5班
[parent_id] => 53
)
)
)
)
)
)
Array
(
[0] => Array
(
[id] => 49
[name] => 体育部
[parent_id] => 46
[children] => Array
(
[0] => Array
(
[id] => 52
[name] => 体育1专业
[parent_id] => 49
)
[1] => Array
(
[id] => 53
[name] => 体育2专业
[parent_id] => 49
)
)
)
)
可以优化一下
function foo($ar, $deep=-1) {
if($deep < 0) return $ar;
$res = array();
foreach($ar as $k=>$r) {
if(isset($r['children'])) {
if($deep) $r['children'] = foo($r['children'], $deep-1);
else unset($r['children']);
}
$res[$k] = $r;
}
return $res;
}