2013-02-21 62 views
0

我的代碼類似於;PHP:如何從函數中返回多維數組

function myFunc() { 
    $myArry = array(); 
    $myArry[1]['first'] = "First"; 
    $myArry[1]['second'] = "Second"; 
    $myArry[2]['first'] = "First"; 
    $myArry[2]['second'] = "Second"; 
    $myArry[3]['first'] = "First"; 
    $myArry[3]['second'] = "Second"; 
    echo "before return: ".count($myArry); 
    return $myArry; 
} 

// main code 
$returnedArry = array(myFunc()); 
echo "after return: ".count($returnedArry); 

輸出:

before return: 3 
after return: 1 

這到底是怎麼發生的,可有人請解釋一下嗎?另外,我該怎麼做?

謝謝。

+0

對不起,請忽略此職位,我已經要求Mod將其關閉,我在我的代碼中有一個錯字,所以這個問題是完全無效的 – jwbensley 2013-02-21 15:57:35

回答

8
$returnedArry = array(myFunc()); 

該行代碼將您的數組放入另一個數組中。由於是數組中的唯一元素計爲1,你真正想要的是這樣的:

$returnedArry = myFunc(); 
+0

@javano然後你做了其他*錯誤。這是返回數組的正確方法。 – Sammitch 2013-02-21 15:58:47

+0

感謝您的意見,這解釋了爲什麼這不起作用。雖然我實際上在我的代碼中引用了一個不同的函數,所以這個問題完全沒有意義。抱歉給你帶來不便! – jwbensley 2013-02-21 16:00:09

1

你包裹在一個新的數組返回$myArry,因此它是在$returnedArry的單個條目。

$returnedArray = array(
      array(
       0 => array(
         'first' => "First", 
         'second' => "Second" 
        ), 
       1 => ... 
       2 => ... 
     ) 
    ) 

要產生你正在尋找的結果:

$returnedArray = myFunc(); 

在未來,你可以使用print_rvar_dump幫助你展示什麼在這些陣列。

+0

感謝您的意見,這解釋了爲什麼這不起作用。雖然我實際上在我的代碼中引用了一個不同的函數,所以這個問題完全沒有意義。抱歉給你帶來不便! – jwbensley 2013-02-21 15:58:35