$parents = array(
array('id'=>1,'parent_id'=>0,'title'=>'Parent1'),
array('id'=>2,'parent_id'=>1,'title'=>'Child1'),
array('id'=>3,'parent_id'=>1,'title'=>'Child2'),
array('id'=>5,'parent_id'=>3,'title'=>'Child2.1'),
array('id'=>6,'parent_id'=>5,'title'=>'Child2.1.1'),
array('id'=>7,'parent_id'=>5,'title'=>'Child2.1.2'),
array('id'=>8,'parent_id'=>7,'title'=>'Child2.1.2.1'),
array('id'=>9,'parent_id'=>2,'title'=>'Child1.1'),
array('id'=>10,'parent_id'=>0,'title'=>'Parent2'),
array('id'=>11,'parent_id'=>2,'title'=>'Child1.2'),
array('id'=>12,'parent_id'=>6,'title'=>'Child2.1.1.1'),
);
function childParentTree($parents,$parentId = 0) {
$str = '';
foreach($parents as $parent):
if($parentId == $parent['parent_id']) {
// Create Label
$str .= '<li>'.$parentId.$parent['title'].'</li>';
// search Child
$str .= childParentTree($parents,$parent['id']);
}
endforeach;
return $str;
}
echo childParentTree($parents);
上面的代码没问题,但是当我运行代码时,我对结果感到困惑。打印后
0
1
2
9
对于变量$parentId
,它打印11
这意味着以前的父ID,但是如何
有人可以解释原因吗?提前致谢。