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函数将原始数组拆分为任意大小的块

IE$rows = array_chunk($filtered, 22);

于 2012-05-07T20:16:37.923 回答
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 回答
0

使用array_chunk然后变量 variables

$j = 1;
foreach( array_chunk($list, 22)  as $chunk){
    ${"row{$j}"} = $chunk;
    $j++;
}
于 2012-05-07T20:33:21.740 回答