function chunkify($data, $sizes, $keep_keys = false) {Lehet megadni több féle variációban milyen blokkok ismétlõdjenek a fenti csak az alábbi 2 és 1 hosszú példa ([2,1]).
$chunks = [];
$block_size = array_sum($sizes);
$blocks = array_chunk($data, $block_size, $keep_keys);
foreach ($blocks as $block) {
$pos = 0;
$remain = count($block);
foreach ($sizes as $size) {
if ($remain <= 0) break;
$chunks[] = array_slice($block, $pos, $size, $keep_keys);
$pos += $size;
$remain -= $size;
}
}
return $chunks;
}
$chunked_data = chunkify(range(1,11), [2,1]);