<?php
function double_chunk($array, $maxrows) {
$size = sizeof($array);
$columns = ceil($size / $maxrows);
$fullrows = $size - ($columns - 1) * $maxrows;
if ($fullrows == $maxrows) {
return array_chunk($array, $fullrows); // all columns have full rows, don't splice
}
return array_merge(
array_chunk(
array_splice($array, 0, $columns * $fullrows),
$columns
),
array_chunk($array, $columns - 1)
);
}
var_export(double_chunk(range('a', 'g'), 4));
preferences:
54.77 ms | 402 KiB | 5 Q