PHP array_chunk()函数将数组拆分为具有指定元素数量的数组块。
您可以规定每个块中必须包含的具体元素数量。
array_chunk()语法
PHP array_chunk() 函数的语法是
array_chunk(array,size,preserve_keys);
参数 | 描述 |
---|---|
array | 必需。规定要使用的数组。 |
size | 必需。一个整数,规定每个新数组块包含多少个元素。 |
preserve_key | 可选。可能的值:
|
返回值
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 )
我们可以从这个输出中得出两个结果。
块数组中的键是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 )
可以看到块中的键从源数组中保留下来了。
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()函数将一个数组分割成多个。