0

120 行の配列 (大) があり、各行には 5 列があります。最後に、さらに 3 つの行を追加しようとしましたが、最後の 3 つの列のみを追加しました。最初に、追加したい行 (3) にダミーの char * を追加しました。ループでは、これら 3 行 (各 3 列) が追加されます。問題は、メイン行の最後に追加された最初の行で、キーの順序が失われていることです!! 出力の例 (最後の部分のみを表示):

[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 が表示されている場合、[0] ではなく [4] が最初に来ています。

ダミーの入力に使用されるコード * :

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

最後の 3 行を更新するために使用されるコード:

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

行と列の値のエコーを行い、物事が完璧に表示されました!! 取得しても、正しい値を取得できました... [0] と [4] のように、正しい値を取得していました。

問題は、ビジュアル環境で上記の配列をフィードバックする必要があり、正しく表示されません。

何か助けはありますか?

4

1 に答える 1

1

問題についてはわかりませんが、キーは配列に追加されたのと同じ順序で表示されます。

ksort()キーに基づいて配列をソートするために使用できます。

于 2012-10-19T11:49:41.767 に答える