将数组划分为更小的数组


divide array into smaller arrays

我有第一个$array1的200个整数值,$array1的整数值是随机值,第二个数组说如下

$array2= array('30','40,'70','30','30');

两个数组都是动态生成的

我想根据$array2值将我的$array1分成更小的数组,因为$array1的前30个整数将构成单独的数组,$array1的后40个整数将构成第二个新数组,等等。从上面的例子中,将有5个新的数组。

有谁能帮帮我吗?

我在下面试过,它可以根据分配的值进行划分。但这没有用

$arrays = array_chunk($array1, 30);

您应该遍历块大小的数组,并每次截断输入数组的适当部分:

$input = range(0, 199);
$chunks = array(30, 40, 70, 30, 30);
$output = array();
$processed = 0;
while($chunks) {
    $processed += $size = array_shift($chunks);
    $output[] = array_slice($input, $processed, $size);
}

你为什么不试试这个

       $startingPoint = 0;
       foreach($array2 as $val)
       {
       for($i = $startingPoint ; $i < $startingPoint + $val ; $i++)
        { $array1[$i]  }
        $startingPoint += $val
       }