Mit array_chunk kann man einen Array teilen und dabei die Größe der Teile angeben. Bei kleineren Arrays kann man die benötigte Größe der Teile mit floor ermitteln. Hat man aber einen Array mit vielen Elementen so kann man folgende Funktion benutzen.
function part(array $ar, int $pices) { $size = sizeof($ar); $chunk_size = floor($size / $pices); $pr = $size % $pices; $r = []; $k = 0; for ($i = 0; $i < $pices; $i ++) { $j = ($i < $pr)?$chunk_size + 1:$chunk_size; $r[$i] = array_slice($ar, $k, $j); $k += intval($j); } return $r; } var_dump(part([1,2,3,4,5,6,7,8], 2);