3

私はphpに非常に慣れていません。大きな配列で複数の配列スライスを実行しようとしています。現在、これは私のコードの一部です:

$row1 = array_slice($filtered, 0, 22);
$row2 = array_slice($filtered, 22, 22);
$row3 = array_slice($filtered, 44, 22);
$row5 = array_slice($filtered, 66, 22);
$row6 = array_slice($filtered, 88, 22);
$row7 = array_slice($filtered, 110, 22);
$row8 = array_slice($filtered, 132, 22);
$row9 = array_slice($filtered, 154, 22);
$row10 = array_slice($filtered, 176, 22);

配列スライスの開始位置が前の行より 22 増えるたびに。これらのすべての行 (合計 674) を書き出す代わりに、開始位置を最後に到達するまで自動的に 22 進め、例のように毎回 1 ずつ増加する変数に割り当てるステートメントがあります。 . ありがとう。

4

3 に答える 3

5

PHP のarray_chunk関数を使用して、元の配列を任意のサイズのブロックに分割できます。

すなわち$rows = array_chunk($filtered, 22);

于 2012-05-07T20:16:37.923 に答える
0

array_chunkを使用してから、変数変数を使用します。

$j = 1;
foreach( array_chunk($list, 22)  as $chunk){
    ${"row{$j}"} = $chunk;
    $j++;
}
于 2012-05-07T20:33:21.740 に答える
0
$previous = 0;
$current = 22;
$rows = array();

for ($current; $current < size($filtered); $current+22) {
    $rows[] = array_slice($filtered, $previous, $current);
    $previous = $current;
}

$filtered配列数が 22 で割り切れない場合は、特別なケースが必要になります。

于 2012-05-07T20:16:17.647 に答える