Php 如何从函数返回数组?

Php 如何从函数返回数组?,php,arrays,function,return,Php,Arrays,Function,Return,这个函数昨天还可以,我不知道为什么现在不能返回数组值 我尝试在Xxxx处转储值…结果非常完美…但是当我在返回$DownlineArray(上次返回)之前转储时,我只得到第一个数组[0]值…它是从另一个函数传递的…我不知道为什么…有人能指出它吗 在它返回数组之后,我从另一边什么也得不到。调用此函数并获取数组值 function findEntireGroupDownlinesMemberID($downlinesArray, $index) { $downlineDB = $this-&g

这个函数昨天还可以,我不知道为什么现在不能返回数组值

我尝试在Xxxx处转储值…结果非常完美…但是当我在返回$DownlineArray(上次返回)之前转储时,我只得到第一个数组[0]值…它是从另一个函数传递的…我不知道为什么…有人能指出它吗

在它返回数组之后,我从另一边什么也得不到。调用此函数并获取数组值

function findEntireGroupDownlinesMemberID($downlinesArray, $index)
{
    $downlineDB = $this->getDistributorInformation($downlinesArray[$index]);
    if ($downlineDB) {
Xxxx
        if ($downlineDB->getLeftPositionDistCode()) {
            array_push($downlinesArray, $downlineDB->getLeftPositionDistCode());
        }

        if ($downlineDB->getRightPositionDistCode()) {
            array_push($downlinesArray, $downlineDB->getRightPositionDistCode());
        }
        $index++;
        return $this->findEntireGroupDownlinesMemberID($downlinesArray, $index);
    }
    return $downlinesArray;
}

如果需要修改原始的
$downlinesrarray
数组,则需要将其传递给函数。 另外,由于代码从未到达第二条return语句,因此会出现错误。检查代码段:

{
    if ($downlineDB) {  //if this is true, the 2nd return statement will never get executed.
    Xxxx
        if ($downlineDB->getLeftPositionDistCode()) {
            array_push($downlinesArray, $downlineDB->getLeftPositionDistCode());
        }

        if ($downlineDB->getRightPositionDistCode()) {
            array_push($downlinesArray, $downlineDB->getRightPositionDistCode());
        }
         $index++;
         return $this->findEntireGroupDownlinesMemberID($downlinesArray, $index);  //function exits here
    }
    return $downlinesArray;
}

$downlineDB
的计算结果为false时,您得到的只是第一个数组值
数组[0]

如果您需要修改原始的
$downlinesrarray
数组,您需要将其传递给您的函数。 另外,由于代码从未到达第二条return语句,因此会出现错误。检查代码段:

{
    if ($downlineDB) {  //if this is true, the 2nd return statement will never get executed.
    Xxxx
        if ($downlineDB->getLeftPositionDistCode()) {
            array_push($downlinesArray, $downlineDB->getLeftPositionDistCode());
        }

        if ($downlineDB->getRightPositionDistCode()) {
            array_push($downlinesArray, $downlineDB->getRightPositionDistCode());
        }
         $index++;
         return $this->findEntireGroupDownlinesMemberID($downlinesArray, $index);  //function exits here
    }
    return $downlinesArray;
}

$downlineDB
的计算结果为false时,您得到的只是第一个数组值
数组[0]

您需要通过引用传递数组
函数findEntireGroupDownlineMemberID(&$downlinesArray,$index){
。看看Hi Cyclone,我试过了,但显示了N。它给了我500个内部服务器错误。您需要通过引用传递数组
函数findEntireGroupDownlineMemberID(&$DownlineArray,$index){
。看看Hi Cyclone,我尝试了,但显示了N。它给了我500个内部服务器错误Hi Niket,是的。这实际上是我想要的。它将循环直到没有下线,然后返回整个阵列。Hi Niket,是的。这实际上是我想要的。它将循环直到没有下线,然后返回整个阵列。