Php递归方法

时间:2015-07-31 12:00:19

标签: php recursion tail-recursion

我试图以递归方式检索当前和子类别的所有产品,但不幸的是它总是返回一个空数组。这是我的方法。

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是一个空数组。有人可以帮我找到正确的方法吗?

1 个答案:

答案 0 :(得分:1)

您需要指定array_merge的结果。它返回一个新数组,它不会修改参数数组。

self::$products = array_merge(self::$products, DB::table('products')->where('category_id', $id)->get());