- var_dump: documentation ( source)
- array_chunk: documentation ( source)
- array_slice: documentation ( source)
- array_merge: documentation ( source)
- range: documentation ( source)
<?php
$data = range(1,7);
$limit = 3;
$point = count($data)-count($data)%$limit;
$result = array_chunk(array_slice($data, 0, $point), $point/$limit);
$result[$limit-1] = array_merge($result[$limit-1], array_slice($data, $point));
var_dump($result);