2013-08-28 48 views
0

我創建了一個數組,並將數組放入另一個數組中。我想現在修改數組,但代碼從不修改它。
下面是創建部分:PHP修改陣列中的數組

$arr_row_name = array(); 
for($nrow=0;$nrow < $numRows;$nrow++) 
{ 
    $arr_slot_name = array(); 
    for($nsp=0;$nsp < $numServProvider + 1;$nsp++) 
    { 
     $arr_slot_name[] = "Closed"; 
    } 
    //Add Slot to the row....... 
    $arr_row_name[] = $arr_slot_name; 
} 

這裏就是我試圖訪問數組,並修改它的一部分。

$arr_row_length = count($arr_row_name); 
for($x=0;$x<$arr_row_length;$x++) 
{ 
    $arr_slot_name = $arr_row_name[$x]; 
    $arr_slot_length = count($arr_slot_name); 
    for($slot=0;$slot<$arr_slot_length;$slot++) 
    { 
     $arr_slot_name[$slot] = "Open"; 
    }   
} 
+1

'$ arr_row_name [$ x] [$ slot] =「Open」;' – crush

+0

他們說如果在遍歷數組的時候修改數組,你可能會得到意想不到的結果。製作數組的副本可能會更好。然後,在遍歷原稿時,您會更改副本。然後你用副本覆蓋原件。 –

回答

1

在你的代碼的第二位,變化:

$arr_slot_name = $arr_row_name[$x]; 

到:

$arr_slot_name = &$arr_row_name[$x]; 

,你擁有了它,你在做的$arr_row_name[$x]進入副本$arr_slot_name的方式..在第二種選擇中,你是通過引用來分配它,並且能夠改變原來的...

+0

啊。我知道我錯過了一些東西。謝謝。 –