PHP array_chunk() 函数用法及示例

PHP Array 函数

定义和用法

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版本

此函数最初是在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

PHP Array 函数