我试图在我的网站上实现一个类别系统。问题是一个类别可能有孩子。 到目前为止,我的表category
看起来像这样:类递归循环
id, name, parent_id
到目前为止,我做了一个循环,但它仅适用于2级。这里是我的代码:
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;
}
}
}
这回我一个数组,因为它:
Array
(
[0] => Array
(
[1] => Cat1
[children] => Array
(
[12] => sub cat 1
[13] => sub cat 2
[14] => sub cat 3
)
)
[1] => Array
(
[2] => Cat2
)
[2] => Array
(
[3] => Cat3
)
)
我怎样才能使效率和递归有更多的东西一样:
Array
(
[0] => Array
(
[1] => Cat1
[children] => Array
(
[12] => sub cat 1
[13] => sub cat 2
[14] => sub cat 3
[children] => Array
(
[1] => sub sub cat 1
)
)
)
[1] => Array
(
[2] => Cat2
)
[2] => Array
(
[3] => Cat3
)
)
感谢你的帮助
编辑
我工作Zend的,并返回我data
因为它:
Zend_Db_Table_Rowset Object
(
[_data:protected] => Array
(
[0] => Array
(
[id] => 1
[name] => Cinema
[type] => category
[slug] => cinema
[parent_id] => -1
)
[1] => Array
(
[id] => 2
[name] => Horror
[type] => category
[slug] => horror
[parent_id] => 1
)
你好,是的,我知道,但不幸的是,我没有选择,我必须使用它现在 – lkartono 2013-04-04 09:04:13
高达ü要嵌套类这一级的方式??????如果你有2-3层比你的代码是perfact多一个for循环... – Shwet 2013-04-04 09:06:41
没有嵌套级别的限制。在这种情况下,我应该只使用两张桌子吗? – lkartono 2013-04-04 09:31:29