PHP array_chunk() 函数
定义和用法
array_chunk() 函数接受一个数组作为输入,并将该数组拆分为给定大小的较小块。最后一块可能包含比传递的大小少的元素,根据数组中可用总数的乘性因子。
语法
array array_chunk ( array input, intsize [, bool $preserve_keys] );
参数
序号 | 参数及描述 |
---|---|
1 | $input(必需) 这是我们要分割成较小块的输入数组。这是必需的参数。 |
2 | $size(必需) 我们希望将传递的数组拆分成每个块的大小。 输入 的形式。这也是必需的参数。 |
3 | $preserve_keys(可选) 这是一个可选的布尔参数,但当它设置为 TRUE 时,数组中的所有键将被保留。如果您不传递它,则其默认值为 FALSE ,将重新索引块的数字。 |
返回值
PHP array_chunk() 函数返回一个多维的索引数组,从零开始,每个维度包含 size 个元素。
PHP版本
此函数首次引入于 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
)
)
示例
以下示例将0值传递给大小参数,因此会抛出警告消息 –
<?php
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