1, 'pid' => 0, 'name' => '一级11'), array('id' => 11, 'pid' => 0, 'name' => 'www.111cn.net 一级12'), array('id' => 2, 'pid' => 1, 'name' => '二级21'), array('id' => 10, 'pid' => 11, 'name' => '二级22'), array('id' => 3, 'pid' => 1, 'name' => '二级23'), array('id' => 12, 'pid' => 11, 'name' => '二级24'), array('id' => 13, 'pid' => 12, 'name' => '三级31'), array('id' => 9, 'pid' => 1, 'name' => '二级25'), ); function formatTree($array, $pid = 0) { $arr = $tem = array(); foreach ($array as $v) { if ($v['pid'] == $pid) { $tem = formatTree($array, $v['id']); //判断是否存在子数组 $tem && $v['children'] = $tem; $arr[] = $v; } } return $arr; } echo "
";
print_r(formatTree($items));
/**
Array
(
[0] => Array
(
[id] => 1
[pid] => 0
[name] => 一级11
[children] => Array
(
[0] => Array
(
[id] => 2
[pid] => 1
[name] => 二级21
)
[1] => Array
(
[id] => 3
[pid] => 1
[name] => 二级23
)
[2] => Array
(
[id] => 9
[pid] => 1
[name] => 二级25
)
)
)
[1] => Array
(
[id] => 11
[pid] => 0
[name] => www.111cn.net 一级12
[children] => Array
(
[0] => Array
(
[id] => 10
[pid] => 11
[name] => 二级22
)
[1] => Array
(
[id] => 12
[pid] => 11
[name] => 二级24
[children] => Array
(
[0] => Array
(
[id] => 13
[pid] => 12
[name] => 三级31
)
)
)
)
)
)
*/