Php 将一个数组拆分为3个数组

Php 将一个数组拆分为3个数组,php,Php,可能重复: 可以使用以下方法将阵列拆分为3个较小的阵列: $things = array('...'); // an array containing 9 things $things = array_chunk($things, count($things)/3); 问题:但是,当count$things时,数组中的项数不能被3等分,最后我得到了4个较小的数组。例如,如果我在数组$things中有10个元素,那么将其输入到数组_块中会得到3个元素的数组,以及一个包含1个元素的第4个数

可能重复:

可以使用以下方法将阵列拆分为3个较小的阵列:

$things = array('...');    // an array containing 9 things
$things = array_chunk($things, count($things)/3);
问题:但是,当count$things时,数组中的项数不能被3等分,最后我得到了4个较小的数组。例如,如果我在数组$things中有10个元素,那么将其输入到数组_块中会得到3个元素的数组,以及一个包含1个元素的第4个数组

如何将一个数组划分为3个较小的数组,这样,如果出现上述示例中的情况,我将以

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

基本上,我要做的是获取一个大数组,并将其尽可能平均地显示为3列。它是按字母顺序排序的,所以顺序很重要。

试试ceilcount$things/3,这样分割点就向上取整了。对于11项数组,您可以选择4/4/3,而不是3/3/3/2。

尝试ceilcount$things/3,这样分割点就向上取整了。对于一个11项数组,你可以说是4/4/3而不是3/3/3/2。

检查我给出的答案,然后将4改为3:


检查我给出的答案,将4改为3:


以ceil为例,将$n/3四舍五入。谢谢mario,它很管用!我相信mario首先回答了这个问题:使用ceil将$n/3四舍五入。谢谢mario,它很有效!我相信马里奥是先回答的:
$groups = array_chunk($all,(int)ceil(count($all)/3));