自调用数组returnphp

Self calling array return php

我正在编写一个按类别排序的模块,return我是尽可能低的子类别。

private function getChild($array){
    foreach($array as $item){
        if(is_array($item)){
            $this->getChild($item);
        } else {
            array_push($this->catsToReturn, $item);
        }
    }
}

所以我的实际问题是为什么我不能 return 在 else 附件中赋值?我想 return $item 并将该值推送到数组,这将给我更好的代码可读性,因为现在我有

$this->getChild($this->postCategories);

在我的代码中随机挂起。

对我来说奇怪的新事物是我可以回显值但我不能 return 它,我知道这是一个范围问题,但找不到任何关于如何解决的信息它。

只是想知道如何改进它。

干杯

您可以通过在数组中添加 $item 并执行 array_merge 从后续调用中获取结果来更改您的代码。

<?php

private function getChild($array){
    $result = [];
    foreach($array as $item){
        if(is_array($item)){
            $result = array_merge($result,$this->getChild($item));
        } else {
            $result[] = $item;
        }
    }

    return $result;
}

无论您在 class 中呼叫什么地方,您都可以

$this->catsToReturn = $this->getChild($array)