将数组拆分为3个数组

时间:2012-10-28 16:49:23

标签: php

  

可能重复:
  Slice an array into 4 other arrays

可以使用以下命令将数组拆分为3个较小的数组:

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

问题但是当count($things)数组中的项目数量无法按3平均分配时,我最终会 4 更小阵列。例如,如果我在数组$things中有10个元素,则将其输入array_chunk()会给出3个包含3个元素的数组,以及包含1个元素的第4个数组。

如何将数组划分为3个较小的数组,这样如果我遇到上述示例中的情况,我最终会得到

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

基本上我正在做的是采用一个大阵列并尽可能平均地将其显示为3列。它按字母顺序排序,因此序列非常重要。

2 个答案:

答案 0 :(得分:6)

尝试ceil(count($things) / 3),以便将分割点向上舍入。对于一个11项阵列,它会给你(比方说)4/4/3而不是3/3/3/2。

答案 1 :(得分:1)

检查我在此duplicate question上给出的答案,并将4更改为3

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