可以使用以下命令将数组拆分为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列。它按字母顺序排序,因此序列非常重要。
答案 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));