2012-10-19 26 views
0

我有一個數組(大)與120行,每行有5列。最後,我試圖添加三個行,但只有最後三列。首先,我添加了虛擬char *到我想追加的行(3)。在循環中,添加這三行(每三列)。 問題是 - 在主行末尾添加的第一行,鍵的順序丟失了!輸出的 示例(只顯示最後一個部分):PHP:數組鍵的順序不能正確提供

[116] => Array ([0] => A3 [1] => B4 [2] => C2 [3] => D4 [4] => *) 
[117] => Array ([0] => A3 [1] => B5 [2] => C2 [3] => D2 [4] => *) 
[118] => Array ([0] => A3 [1] => B5 [2] => C2 [3] => D3 [4] => *) 
[119] => Array ([0] => A3 [1] => B5 [2] => C2 [3] => D4 [4] => *) 
[120] => Array (**[4]** => * [0] => * [1] => * [2] => * [3] => *) **<==== Observer this row** 
[121] => Array ([0] => * [1] => * [2] => * [3] => * [4] => *) 
[122] => Array ([0] => * [1] => * [2] => * [3] => * [4] => *) 

如果你看到列120,[4]排在開始,而不是[0]!

代碼中使用填充假*:

$i = 0; 
for ($i=0;$i<=count($unMatchedRows)-1;$i++){ 
    for ($jCols = 0; $jCols<=($pNoOfCols+$pStartCol-1); $jCols++){ 
     $pMainArray[$vRowsOfMainArray+$i][$jCols] = '*'; 
    } 
} 

代碼用於更新的最後三行:

$i=0; 
$ColToStart = $pStartCol-1; 
foreach ($unMatchedRows as $rowNumberOfCompArray) { 
    for ($jCols = 0; $jCols<=$pNoOfCols; $jCols++){ 
     echo "<br /> Value of Colstart: ".($ColToStart+$jCols); 
     $pMainArray[$vRowsOfMainArray+$i][$ColToStart+$jCols] =  $pCompArray[$rowNumberOfCompArray][$jCols]; 

    } 
    $i++; 
} 
$pStartCol = 3 and $pNoOfCols = 2; 

難道ROW和COL值和事物的回波顯示了完美的! 即使回顧,我可以得到正確的值......就像[0]和[4]我正在獲得正確的值。

問題需要在視覺環境中反饋上述數組,並且它沒有正確顯示。

任何幫助?

回答

1

我不確定你的問題,但按鍵會以與它們相同的順序出現在數組中。您可以使用ksort()根據鍵對數組進行排序。

+1

非常感謝支持,野人! 發現此問題。看起來像,在填充最後一列中的*(在更新數值之前)時,循環遍歷數組的數量,當數組以0開始時,數組將更多。 而不是119行,有120行,更新了一列,它創造了所有問題! –