Php 递归方法
Php recursive method
我试图以递归方式检索当前类别和子类别的所有产品,但不幸的是它总是 returns 一个空数组。这是我的方法。
class Category {
public static $products = [];
public static function products($id) {
array_merge(self::$products, DB::table('products')->where('category_id', $id)->get());
$categories = DB::table('categories')->where('parent_id', $id)->get();
foreach ($categories as $category) {
self::products($category->id);
}
return self::$products;
}
}
执行此方法后Category::products是一个空数组。有人可以帮我找到正确的方法吗?
您需要分配 array_merge
的结果。它returns一个新数组,它不会修改参数数组。
self::$products = array_merge(self::$products, DB::table('products')->where('category_id', $id)->get());
我试图以递归方式检索当前类别和子类别的所有产品,但不幸的是它总是 returns 一个空数组。这是我的方法。
class Category {
public static $products = [];
public static function products($id) {
array_merge(self::$products, DB::table('products')->where('category_id', $id)->get());
$categories = DB::table('categories')->where('parent_id', $id)->get();
foreach ($categories as $category) {
self::products($category->id);
}
return self::$products;
}
}
执行此方法后Category::products是一个空数组。有人可以帮我找到正确的方法吗?
您需要分配 array_merge
的结果。它returns一个新数组,它不会修改参数数组。
self::$products = array_merge(self::$products, DB::table('products')->where('category_id', $id)->get());