尝试根据类别ID查找根类别时出现问题

时间:2011-02-09 04:18:51

标签: php codeigniter

我试图根据它的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)时,我只调用此函数,但是当我尝试运行它时它会陷入困境无限循环。

我的逻辑是否有缺陷,或者我错过了一些简单的东西?

1 个答案:

答案 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);
}