2011-02-09 66 views
0

我想根據它的parent_id找出類別的根級category_id。嘗試根據類別ID查找根類別的問題

在以下功能$ this-> cat_arr是一個包含所有類別及其parent_id的數組。

如果parent_id設置爲0,則它​​被假定爲根節點。我希望遍歷數組,直到找到傳入的parent_id $ cat_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可能需要一組單引號「0」,作爲FALSE,而不是零(我可以是完全錯誤的,但只是想我會提出一個建議) – OldWest 2011-02-09 04:34:48

+0

@OldWest:你完全錯了;-) – zerkms 2011-02-09 04:42:12

回答

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