該函數的輸出看起來不錯,但我每次都會從無處獲取額外的[0] => Array ([1] => 1)
。 ID在我的數據庫表中從1開始。 0
從哪裏出現?!函數輸出從零開始的數組0元素
Array ([1] => Array ([name] => Sual [parent] => 0) **[0] => Array ([1] => 1)** ...
下面是函數
該函數的輸出看起來不錯,但我每次都會從無處獲取額外的[0] => Array ([1] => 1)
。 ID在我的數據庫表中從1開始。 0
從哪裏出現?!函數輸出從零開始的數組0元素
Array ([1] => Array ([name] => Sual [parent] => 0) **[0] => Array ([1] => 1)** ...
下面是函數
我想象當你遇到從表中的頂級行(行沒有父)問題就來了。當你處理這些行之一,$parent
爲null並且此條件火災:
if (!array_key_exists($parent,$tree)) {
$tree[$parent][$id] = $id;
}
這裏$parent
爲空,這被解釋爲0,這是不是在$parent
存在(至少一個關鍵,而不是你第一次遇到這樣的一排),所以這導致$tree[0]
被創建。在你的情況下,parent
爲空的第一行是id = 1
的行,因此$tree[0]
是array(1 => 1)
。
更改上述條件爲以下:
if (!array_key_exists($parent,$tree) and !is_null($parent)) {
,或者如果你的數據庫的包裝不使用PHP null
類型來表示SQL NULL
值,使用這樣的:
if (!array_key_exists($parent,$tree) and $parent != 0) {
東西出錯了
if (!array_key_exists($parent,$tree)) {
$tree[$parent][$id] = $id;
i thi NK。嘗試評論此代碼,然後打印數組$ tree