array_chunk()函数将数组作为输入并将该数组拆分为给定大小的较小块。 根据数组中可用总数的倍数,最后一个数组块包含的实际元素数可能少于传递的大小。
array array_chunk ( array $input, int $size [, bool $preserve_keys] );
序号 | 参数及说明 |
---|---|
1 | $input(必填) 这是我们要拆分成较小块的输入数组。 这是必填参数。 |
2 | $size(必填) 我们想要以$input的形式拆分传递的数组的每个块的大小。这也是必填参数。 |
3 | reserve_keys(可选) 这是一个可选的布尔型参数,但当它设置为true时,将保留数组中的所有键。 如果不传递它,则其缺省值为false,这将以数字方式对块重新编制索引。 |
PHP array_chunk()函数返回一个从零开始的多维数字索引数组,每个维都包含size个元素。
此函数最初是在PHP版本4.2.0中引入的。
如果传递的size小于1,则将引发E_WARNING,并返回NULL。
让我们尝试一个简单的实例,将数组分成多个块,每个块由2个元素组成-
<?php $input = array('abc', 'bcd', 'cde', 'def', 'efg'); print_r(array_chunk($input, 2)); ?>测试看看‹/›
这将产生以下结果,尝试观察每个较小数组的索引,所有三个块均从零开始-
Array ( [0] => Array ( [0] => abc [1] => bcd ) [1] => Array ( [0] => cde [1] => def ) [2] => Array ( [0] => efg ) )
让我们再次尝试相同的实例,但这次我们将参数preserve_keys设置为true:
<?php $input = array('abc', 'bcd', 'cde', 'def', 'efg'); print_r(array_chunk($input, 2, true)); ?>测试看看‹/›
这将产生以下结果,这次每个元素都像保留原始数组一样保留其索引值-
Array ( [0] => Array ( [0] => abc [1] => bcd ) [1] => Array ( [2] => cde [3] => def ) [2] => Array ( [4] => efg ) )
以下示例为size参数传递了0值,因此引发了警告消息-
<?php //指定分割为大小为0的数组,将抛出错误 $input = array('abc', 'bcd', 'cde', 'def', 'efg'); print_r(array_chunk($input, 0)); ?>测试看看‹/›
输出结果
PHP Warning: array_chunk(): Size parameter expected to be greater than 0 in main.php on line 3