1

可能重复:
将一个数组分割成 4 个其他数组

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

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

问题:但是,当count($things)数组中的项目数不能除以 时3,我最终得到4 个较小的数组。例如,如果我在 array 中有 10 个元素$things,输入它array_chunk()会给我 3 个包含 3 个元素的数组,以及一个包含 1 个元素的第 4 个数组。

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

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

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

4

2 回答 2

6

试试ceil(count($things) / 3),所以分割点向上取整。对于 11 项数组,这会给你(比如说)4/4/3 而不是 3/3/3/2。

于 2012-10-28T16:51:13.457 回答
3

检查我在这个重复问题上给出的答案,然后更改43

$groups = array_chunk($all,(int)ceil(count($all)/3));
于 2012-10-28T17:24:07.127 回答