PHP:根据另一个数组的值将数组拆分为不同大小的块

elf*_*go1 2 php arrays split

有没有一种巧妙的方法可以根据另一个数组的长度将数组拆分成块?

$start = range(0,30);
$length = array(3,7,2,12,6);

$target = array([0]=>array(0,1,2),
                [1]=>array(4,5,6,7,8,9,10),
                [2]=>array(11,12),
                [3]=>array(13,14,15,16,17,18,19,20,21,22,23,24),
                [4]=>array(25,26,27,28,29,30));
Run Code Online (Sandbox Code Playgroud)

pha*_*t0m 6

使用array_splice:

$target = array(); // or use []  in PHP 5.4
foreach($length as $i) {
    $target[] = array_splice($start, 0, $i);
}
Run Code Online (Sandbox Code Playgroud)

试试吧.

请注意,这种变化$start!