2012-11-22 3 views
15

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

私は関数が1つの変数を返すことができます知っている..私の2つの配列を返す方法はありますか?

私がそれらを連結すると、関数の外に出たときにどうすればそれらをきれいに分けることができますか?

+0

実際に受け入れられた答えと同じですが、もっと多くの説明があります。http://stackoverflow.com/questions/3451906/multiple-returns-from-function#answer-3579950 – caramba

答えて

50

連結する必要はありません:あなたはこのように、listでローカル変数にこれらの配列を割り当てることができるようになります...

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

:ちょうどこのように、2つの配列の配列を返す

あなたがPHP 5.4で動作している場合
list($firstArray, $secondArray) = foo(); 

そして、あなたはここにも、アレイのショートカット構文を使用することができます。

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

ありがとう! – lleoun

+1

+1良い答えを得るために: –

+0

優秀、ありがとう! –

2

私はraina77owの答えが適切にあなたの質問に答えると思います。考慮すべきもう1つのオプションは、書き込みパラメータを使用することです。あなたは常には、二つの配列を返す必要があれば

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

これは有用ではないだろうが、それは、常に1つの配列を返すために使用することができ、他を返します。そして、

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

    return array(4, 5, 6); 
} 

、コールします特定の場合のみである。

関連する問題