$res = $this->db->select("*"," parent = 0",""," `id` ASC ");
$area = array();
foreach($res As $key => $val){
$area[$val['id']] = $val;
$this->setChildArea($area,$val['id']);
} function setChildArea(&$target,$parent){
$res = $this->db->select("*"," parent = ".$parent,""," `id` ASC ");
if(!$res)return;
foreach($res As $key => $val){
$target[$parent]['child'][] = $val;
$this->setChildArea($target[$parent]['child'],$val['id']); //我觉得应该是这里传值有问题,但具体不知道是什么回事,请求帮助。 }
}
这个递归有问题。array (
1 =>
array (
'id' => '1',
'name' => '国内',
'parent' => '0',
'recommend' => 'Y',
'sort' => '1',
'child' =>
array (
0 =>
array (
'id' => '2',
'name' => '西南地区',
'parent' => '1',
'recommend' => 'N',
'sort' => '2',
),
2 =>
array (
'child' =>
array (
0 =>
array (
'id' => '3',
'name' => '华东地区',
'parent' => '2',
'recommend' => 'N',
'sort' => '3',
),
3 =>
array (
'child' =>
array (
0 =>
array (
'id' => '4',
'name' => '华南地区',
'parent' => '3',
'recommend' => 'Y',
'sort' => '99',
),
),
),
),
),
3 =>
array (
'id' => '7',
'name' => '西北地区',
'parent' => '1',
'recommend' => 'Y',
'sort' => '99',
),
),
),
9 =>
array (
'id' => '9',
'name' => '出境',
'parent' => '0',
'recommend' => 'Y',
'sort' => '99',
'child' =>
array (
0 =>
array (
'id' => '10',
'name' => '港澳台',
'parent' => '9',
'recommend' => 'Y',
'sort' => '22',
),
1 =>
array (
'id' => '11',
'name' => '东南亚',
'parent' => '9',
'recommend' => 'Y',
'sort' => '11',
),
2 =>
array (
'id' => '12',
'name' => '日韩游',
'parent' => '9',
'recommend' => 'Y',
'sort' => '99',
),
3 =>
array (
'id' => '13',
'name' => '欧洲游',
'parent' => '9',
'recommend' => 'Y',
'sort' => '99',
),
13 =>
array (
'child' =>
array (
0 =>
array (
'id' => '5',
'name' => '华北地区',
'parent' => '13',
'recommend' => 'Y',
'sort' => '99',
),
5 =>
array (
'child' =>
array (
0 =>
array (
'id' => '6',
'name' => '华中地区',
'parent' => '5',
'recommend' => 'Y',
'sort' => '99',
),
6 =>
array (
'child' =>
array (
0 =>
array (
'id' => '8',
'name' => '东北地区',
'parent' => '6',
'recommend' => 'Y',
'sort' => '99',
),
),
),
),
),
),
),
),
),
)
打印出来,二级后父类与子类之间有空值。
$target[$parent]['child'][$val['id'] = $val;