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