PHP函数返回两个数组

18

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

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

如果我将它们连接起来,如何在函数结束后干净地分离它们?


1
实际上与被接受的答案相同,只是解释更详细:https://dev59.com/j3A75IYBdhLWcg3wJFcL - caramba
2个回答

65
不需要连接: 只需返回两个数组的数组,像这样:
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);

如果您总是需要返回两个数组,则以下内容可能不太有用,但可以用于始终返回一个数组,并仅在某些情况下返回另一个数组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接