17

関数があり、2 つの配列を返す必要があります。

関数は 1 つの変数しか返せないことを知っています.. 2 つの配列を返す方法はありますか?

それらを連結すると、関数の外にあるときにそれらをきれいに分離するにはどうすればよいですか?

4

2 に答える 2

62

連結する必要はありません。次のように、2 つの配列の配列を返すだけです。

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

...次に、次のように、 listを使用してこれらの配列をローカル変数に割り当てることができます。

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

また、PHP 5.4 を使用している場合は、ここでも配列のショートカット構文を使用できます。

function foo54() {
    return [$firstArray, $secondArray];
}
于 2012-11-22T08:32:03.120 に答える
2

raina77ow's answer があなたの質問に適切に答えていると思います。考慮すべきもう 1 つのオプションは、書き込みパラメーターを使用することです。

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

    return array(4, 5, 6);
}

次に、次のように呼び出します。

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

これは、常に2 つの配列を返す必要がある場合には役に立ちませんが、特定の場合にのみ、常に 1 つの配列を返し、もう 1 つの配列を返すために使用できます。

于 2012-11-22T08:49:09.593 に答える