如何在冗长的数组上执行多个array_slice?

时间:2012-05-07 20:11:14

标签: php slice

我是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的变量,如示例。感谢。

3 个答案:

答案 0 :(得分:5)

您可以使用php array_chunk函数将原始数组拆分为任意大小的块

即。 $rows = array_chunk($filtered, 22);

答案 1 :(得分:0)

$previous = 0;
$current = 22;
$rows = array();

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

$filtered数组计数不能被22整除时,您需要一个特殊情况。

答案 2 :(得分:0)

使用array_chunk,然后variable variables

$j = 1;
foreach( array_chunk($list, 22)  as $chunk){
    ${"row{$j}"} = $chunk;
    $j++;
}