我希望有人可以提供帮助,这让我发疯了!
我有一个简单的递归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 )
返回的第一个数组是正确的结果,但我不明白该函数是如何重新运行的,而是只返回第一个父项。
答案 0 :(得分:3)
您应该在对$parents
getParentCategoriesById()
的引用传递给我们
function getParentCategoriesById($parent_category_id, array &$parents = []) { ... }