PHP array_chunk() 函数



定义和用法

array_chunk() 函数接收一个数组作为输入,并将该数组拆分成给定 size 的较小块。根据数组中可用总数的倍数因子,最后一个块可能包含少于传入 size 的元素。

语法

array array_chunk ( array $input, int $size [, bool $preserve_keys] );

参数

序号 参数和描述
1

input (必填)

这是我们要拆分成较小块的输入数组。这是必填参数。

2

size (必填)

我们要将传入的 input 数组拆分成多少个块的大小。这也是必填参数。

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
        )

)

示例

以下示例为 size 参数传递 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
php_function_reference.htm
广告