我希望有人能夠幫助,這讓我瘋狂!PHP - 遞歸函數找到父母的任何給定的父母 - 問題
我有一個簡單的遞歸PHP函數,讓所有的父母都可以在給定的父類中獲得一個類別列表。您只需將它傳遞給任何給定類別的父類別ID,它將遞歸地將所有父類進一步放到樹上。
function getParentCategoriesById($parent_category_id,array $parents = []){
if(empty($parent_category_id)) {
return [];
}
$parents[] = $parent_category_id;
$parent_category = DB::builder()->table('product_categories')->find($parent_category_id);
if(!empty($parent_category->parent)) {
getParentCategoriesById($parent_category->parent,$parents);
}
return $parents;}
假設類別ID = 100有2個父母(33-> 37),如果我只是在返回之前轉儲$ parents數組,結果是:
Array ( [0] => 33 [1] => 37 )
Array ( [0] => 33 )
的返回的第一個數組是正確的結果,但我不明白該函數如何重新運行,然後只返回第一個父級。
你沒有做你的第二個'getParentCategoriesById'調用的結果什麼。並且數組本身沒有被修改,您必須通過它才能發生。 – CBroe
謝謝!那就是訣竅。 –