我已经创建了一个递归函数,我希望每次调用函数时都将它返回的数据添加到数组中。
这是我目前的实施:
public function getParentCategory($categoryId) {
$category = Category::find($categoryId);
if($category != NULL){
$catArray[] = $category->id;
if($category->parent_category_id != NULL) {
$this->getParentCategory($category->parent_category_id);
}
}
}
我想在每次调用函数时将数据存储在catArray
中。
答案 0 :(得分:0)
您只需从函数返回数据即可。您还需要将传递给函数,或使用默认参数:
public function getParentCategory($categoryId, $catArray = array()) {
$category = Category::find($categoryId);
if ($category != NULL){
$catArray[] = $category->id;
if ($category->parent_category_id != NULL){
$catArray = $this->getParentCategory($category->parent_category_id, $catArray);
}
}
return $catArray;
}
您可以使用array_unshift()
而不是$catArray[]=
以相反的顺序拥有$catArray
(和/或在之后添加$category->id
递归)。