2009-10-02 215 views
0

我有一個數組聲明在for循環的開頭之上:$array = array();。 現在,在for循環中,我開始向其中插入值。 在某些時候,我把它的一個索引作爲另一個數組,如$array[$j]=array(); 並插入一些值,如$array[$j][$l] = id;等。PHP多維數組

現在,當我在循環內使用print_r ($array);時,我得到了數組的期望值。 但是在循環之外,這個新創建的數組(2-D)正在消失,我只得到一個1-D數組作爲輸出。

有人可以告訴我問題可能出在哪裏嗎?

+7

我們可以看到你的代碼嗎? – ceejayoz 2009-10-02 20:23:32

+5

這很可能是因爲'$ j'使用了相同的值,因此覆蓋了數組的一部分(如果我正確地理解了這個問題)。 – strager 2009-10-02 20:25:18

+0

@Strager:非常感謝您指出問題所在。我無法找到它,可能是因爲我從來沒有這樣想過。再次感謝! :) – mkamthan 2009-10-02 21:06:50

回答

4

以下代碼正常工作。也許你正在改變你的變數。

<?php 
$array = array(); 

for ($i = 0; $i < 10; $i+=1) { 
    if ($i == 5) { 
     $array[$i] = array('value 1', 'value 2'); 
    } else { 
     $array[$i] = $i; 
    } 
} 

print_r($array); 
?>