我实际上正在研究ZF。我有一个类别表,我想创建一个树以便显示如下数据:
Category
--Sub cat 1
--Sub cat 2
----Su sub cat 1
Another Category
--Sub cat 1
//...etc...
我正在使用该fetchAll
方法获取所有数据。一切正常。但是我现在正试图将我的树创建为一个双 foreach 循环,如下所示:
$tree = array();
foreach($data as $parent){
$tree[$parent->name] = array();
foreach($data as $child){
if($child->parent_id == $parent->id){
$tree[$parent->name][] = $child->name;
}
}
}
问题是循环在main
循环第一次迭代后停止,所以我只是得到第一个父级,它是子类别,但它不会继续到第二个父级。
我的数据库表为以下字段:
id, name, parent_id
任何的想法?
编辑
感谢您 Thibault,它确实使用了良好的旧for
循环:
for($i=0;$i<count($data);$i++){
$tree[$data[$i]->name] = array();
for($j=0;$j<count($data);$j++){
if($data[$j]->parent_id == $data[$i]->id){
$tree[$data[$i]->name][] = $data[$j]->name;
}
}
}