2012-11-22 142 views
15

我有一個函數,我需要它返回兩個數組。返回兩個數組的PHP函數

我知道一個函數只能返回一個變量..有沒有辦法返回我的兩個數組?

如果我將它們連接在一起,那麼當函數失效時如何將它們完全分開?

+0

實際上與接受的答案相同,只是有很多更多解釋:http://stackoverflow.com/questions/3451906/multiple-returns-from-function#answer-3579950 – caramba

回答

50

無需要連接:只返回兩個數組的數組,像這樣:

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

...那麼你就可以將這些陣列分配給本地變量與list,像這樣:

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

如果你使用PHP 5.4工作,你可以在這裏使用數組快捷語法以及:

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

非常感謝! – lleoun

+1

+1獲得不錯的答案:) –

+0

非常好,謝謝! –

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); 

,如果你總是需要返回兩個數組這會不會是有用的,但它可以被用來始終返回一個數組,並返回其他只在某些情況下。