3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = [ "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", ]; function chunkRange(array $arr, int ... $sizes): Generator { $t = 0; $s = count($arr); do { foreach ($sizes as $n => $size) { yield array_slice($arr, $t, $size); $t += $size; } } while($t < $s); } foreach (chunkRange($arr, 1, 2) as $group) { var_dump($group); }
Output for 7.1.25 - 7.1.30, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
array(1) { [0]=> string(3) "one" } array(2) { [0]=> string(3) "two" [1]=> string(5) "three" } array(1) { [0]=> string(4) "four" } array(2) { [0]=> string(4) "five" [1]=> string(3) "six" } array(1) { [0]=> string(5) "seven" } array(2) { [0]=> string(5) "eight" [1]=> string(4) "nine" }

preferences:
102.84 ms | 408 KiB | 5 Q