如何使用PHP的array_chunk()函数将一个数组分割成多个

PHP array_chunk()函数将数组拆分为具有指定元素数量的数组块。

您可以规定每个块中必须包含的具体元素数量。

array_chunk()语法

PHP array_chunk() 函数的语法是

array_chunk(array,size,preserve_keys);
参数描述
array必需。规定要使用的数组。
size必需。一个整数,规定每个新数组块包含多少个元素。
preserve_key可选。可能的值:
  • true - 保留原始数组中的键名。

  • false - 默认。每个新数组块使用从零开始的索引。

返回值

array_chunk()函数返回一个数组的数组,即多维数组。外部维度用于块,内部维度用于数组的元素。

如何使用PHP的array_chunk()函数将一个数组分割成多个

将数组拆分为块

在这个例子中,我们将采用一个带有键值对的关联数组,然后拆分成大小为 3 的块。

<?php
$array = ["a"=>2, "b"=>5, "c"=>7, "e"=>9, "f"=>1, "g"=>0, "h"=>8, "i"=>3];
$chunks = array_chunk($array, 3);
foreach ($chunks as $chunk) {
    print_r($chunk);
	echo "<br>";
}
?>

执行结果

Array ( [0] => 2 [1] => 5 [2] => 7 )
Array ( [0] => 9 [1] => 1 [2] => 0 )
Array ( [0] => 8 [1] => 3 )

如何使用PHP的array_chunk()函数将一个数组分割成多个

我们可以从这个输出中得出两个结果。

  • 块数组中的键是0、1、2,这不是我们的源数组。这是因为默认情况下array_chunk()不保留键。

  • 如果数组不具有规定块大小的精确倍数,例如示例中的最后一个块只有2个元素,小于设定的块元素3,那么最后一个数组块则按实际剩余数量返回。

将数组拆分为块并保留键

在此示例中,我们将采用与前面示例相同的键值对关联数组,然后拆分为大小为3的块,但通过为preserve_keys参数传递 TRUE 来保留键。

<?php
$array = ["a"=>2, "b"=>5, "c"=>7, "e"=>9, "f"=>1, "g"=>0, "h"=>8, "i"=>3];
$chunks = array_chunk($array, 3, TRUE);
foreach ($chunks as $chunk) {
    print_r($chunk);
	echo "<br>";
}
?>

执行结果

Array ( [a] => 2 [b] => 5 [c] => 7 )
Array ( [e] => 9 [f] => 1 [g] => 0 )
Array ( [h] => 8 [i] => 3 )

如何使用PHP的array_chunk()函数将一个数组分割成多个

可以看到块中的键从源数组中保留下来了。

Warning: array_chunk(): Size parameter expected to be greater than 0

块大小必须大于零。如果小于1,array_chunk()会抛出警告并返回NULL。

在下面的示例中,我们将调用大小为0的array_chunk()函数。

<?php
$array = ["a"=>2, "b"=>5, "c"=>7, "e"=>9, "f"=>1, "g"=>0, "h"=>8, "i"=>3];
$chunks = array_chunk($array, 0);
?>

执行结果

Warning: array_chunk(): Size parameter expected to be greater than 0 in D:\ciyawang\test.php on line 9

如何使用PHP的array_chunk()函数将一个数组分割成多个

结语

在本篇教程中,我们学习了如何使用PHP的array_chunk()函数将一个数组分割成多个。

最后编辑于:2023/03/21作者: 烽烟无限