返回两个数组的 PHP 函数

2022-08-30 21:28:52

我有一个函数,我需要它来返回两个数组。

我知道一个函数只能返回一个变量。有没有办法返回我的两个数组?

如果我连接它们,如何在脱离函数时将它们干净利落地分开?


答案 1

无需连接:只需返回两个数组的数组,如下所示:

function foo() {
    return array($firstArray, $secondArray);
}

...然后,您将能够将这些数组分配给具有list的局部变量,如下所示:

list($firstArray, $secondArray) = foo();

如果您使用 PHP 5.4,也可以在此处使用数组快捷语法:

function foo54() {
    return [$firstArray, $secondArray];
}

答案 2

我认为raina77ow的答案足以回答你的问题。要考虑的另一个选项是使用写入参数。

function foobar(array &$arr1 = null)
{
    if (null !== $arr1) {
        $arr1 = array(1, 2, 3);
    }

    return array(4, 5, 6);
}

然后,调用:

$arr1 = array();
$arr2 = foobar($arr1);

如果您总是需要返回两个数组,这将没有用,但它可用于始终返回一个数组,并仅在某些情况下返回另一个数组。