首先我们会获取一个数组
$list = array(
array('id'=>1, 'fid'=>0, 'title' => '中国'),
array('id'=>2, 'fid'=>1, 'title' => '江苏'),
array('id'=>3, 'fid'=>1, 'title' => '安徽'),
array('id'=>4, 'fid'=>8, 'title' => '江阴'),
array('id'=>5, 'fid'=>3, 'title' => '芜湖'),
array('id'=>6, 'fid'=>3, 'title' => '合肥'),
array('id'=>7, 'fid'=>3, 'title' => '蚌埠'),
array('id'=>8, 'fid'=>8, 'title' => '无锡')
);
foreach ($list as $key=> $item){
$items[$item['id']] = $item;#构造数据使获得的数组的key等于ID
}
foreach ($items as $key=>$item){
if (isset($items[$item['fid']])){
$items[$item['fid']]['son'][] = &$items[$key];
}
else{
$tree[] = &$items[$key];
}
}
echo "<pre>";
print_r($tree);
我们打印出来色数据就如下:
Array ( [0] => Array ( [id] => 1 [fid] => 0 [title] => 中国 [son] => Array ( [0] => Array ( [id] => 2 [fid] => 1 [title] => 江苏 ) [1] => Array ( [id] => 3 [fid] => 1 [title] => 安徽 [son] => Array ( [0] => Array ( [id] => 5 [fid] => 3 [title] => 芜湖 ) [1] => Array ( [id] => 6 [fid] => 3 [title] => 合肥 ) [2] => Array ( [id] => 7 [fid] => 3 [title] => 蚌埠 ) ) ) ) ) )