Разделить массив на 3 массива

Возможный дубликат:
Нарежьте массив на 4 других массива

Массив можно разделить на 3 меньших массива, используя:

$things = array('...'); // an array containing 9 things $things = array_chunk($things, count($things)/3); 

Проблема: Однако, когда count($things) количество элементов в массиве не может быть разделено поровну на 3 , я получаю 4 меньших массива. Например, если у меня есть 10 элементов в массиве $things , ввод его в array_chunk() дает мне 3 массива из 3 элементов и 4-й массив, содержащий 1 элемент.

Как я могу разделить массив на 3 меньших массива, так что, если у меня будет такая ситуация, как в приведенном выше примере, я в конечном итоге

 count($things[0]) == 4 count($things[1]) == 4 count($things[2]) == 2 

Басциально то, что я делаю, – это взять большой массив и отобразить его как можно более равномерно в 3 столбца. Он сортируется по алфавиту, поэтому последовательность важна.

Попробуйте ceil(count($things) / 3) , поэтому точка разделения округляется. это даст вам (скажем) 4/4/3 вместо 3/3/3/2 для массива из 11 предметов.

Проверьте ответ, который я дал по этому дублирующему вопросу , и измените значение 4 : 3 :

 $groups = array_chunk($all,(int)ceil(count($all)/3));