我实际上在ZF上工作。我有一个类别表与,我想为了得到如下显示的数据来创建树:Zend框架foreach循环停止吃了第一次迭代
Category
--Sub cat 1
--Sub cat 2
----Su sub cat 1
Another Category
--Sub cat 1
//...etc...
我使用fetchAll
方法来得到我的所有数据。 Everyting工作正常。但随后我现在试图建立我的树成如下双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
任何想法?
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;
}
}
}
您确定您获得超过1个类别吗? – Perry 2013-04-04 08:01:48
嗨,谢谢你的回答。是的,我有几个类别的数据库返回。我已经检查过,所以我不明白为什么它会这样打破。此外,如果我删除第二个循环,一切都很好,循环工作 – lkartono 2013-04-04 08:05:09