我试图根据它的parent_id找出类别的根级别category_id。
在下面的函数中 $ this-> cat_arr 是一个包含所有类别及其parent_id的数组。
如果parent_id设置为0,则假定它是根节点。我希望循环遍历数组,直到找到传递 $ cat_id 的parent_id。
function getRoot($cat_id) {
foreach ($this->cat_arr as $row) {
if ($row->cat_id == $cat_id && $row->parent_id == 0) {
return $row->cat_id;
break;
} else {
$this->getRoot($row->parent_id);
}
}
}
在我的应用程序中,当我知道 $ cat_id 不在根级别(因为parent_id大于0)时,我只调用此函数,但是当我尝试运行它时它会陷入困境无限循环。
我的逻辑是否有缺陷,或者我错过了一些简单的东西?
答案 0 :(得分:0)
试试这个:
function getRoot($cat_id) {
foreach ($this->cat_arr as $row) {
if ($row->cat_id == $cat_id && $row->parent_id == 0) {
return $row->cat_id;
}
}
return $this->getRoot($row->parent_id);
}