Нарежьте массив на 4 других массива

У меня есть массив, который я хочу обрезать в 4 других массивах, потому что я хочу отображать содержимое первого массива на четырех столбцах.

Я пробовал код выше, но я получаю N столбцов с 4 элементами.

$groups = array(); for ($i = 0; $i < count($menu); $i += 4) $groups[] = array_slice($menu, $i, 4); 

Можно ли это изменить, чтобы получить ровно 4 столбца и распределить значения, чтобы они соответствовали?

Solutions Collecting From Web of "Нарежьте массив на 4 других массива"

Как и Майкл Берковский,

 $groups = array_chunk($menu,4); 

Должен дать вам то, что вам нужно. Если вы больше занимаетесь «ручным трудом» :

 $groups = array(); while($groups[] = array_splice($menu,0,4)) {//no need for any code here ^^ chunks the array just fine printf('This loop will run another %d times<br/>',(int)ceil(count($menu)/4)); } 

Обновить:

Я вижу, что я немного ошибался … хочу объединить 4 массива, а не в четыре массива:

 $groups = array_chunk($menu,(int)ceil(count($menu)/4)); 

Можешь попробовать

 // Some Random array $array = range(1, 20); // Split it 4 Chuncks $array = array_chunk($array, 4); // Slice The first 4 Chunks $array = array_slice($array, 0, 4); // Output Result foreach ( $array as $set ) { printf("<li>%s</li>", implode(",", $set)); }