当前位置: 首页> 最新文章列表> array_chunk 如何处理空数组?

array_chunk 如何处理空数组?

M66 2025-04-25

在 PHP 中,array_chunk 是一个常用的数组处理函数。它的作用是将一个大数组切割成多个小数组,方便进行处理。函数的基本用法如下:

array_chunk(array $array, int $size, bool $preserve_keys = false): array
  • $array: 要切割的原数组。

  • $size: 每个小数组的大小。

  • $preserve_keys: 是否保留原数组的键名。

当我们传入一个空数组时,array_chunk 会有什么样的行为呢?这是我们今天讨论的重点。

1. 空数组作为输入

如果你传递的是一个空数组,array_chunk 将返回一个空数组。简单地说,array_chunk([]) 返回 []

$result = array_chunk([], 2);
var_dump($result); // 输出:array(0) { }

2. size 参数如何影响结果

即使指定了切割大小($size),空数组的情况并不会有所不同。无论你指定的 size 是 1、2 还是其他值,返回的结果依然是一个空数组。

$result = array_chunk([], 2);
var_dump($result); // 输出:array(0) { }

$result = array_chunk([], 3);
var_dump($result); // 输出:array(0) { }

3. $preserve_keys 的影响

即使你设置了 preserve_keystrue,空数组的行为依然不会改变,返回的依旧是一个空数组。

$result = array_chunk([], 2, true);
var_dump($result); // 输出:array(0) { }

总结

  • array_chunk 在处理空数组时,总是返回一个空数组,无论你指定的 sizepreserve_keys 如何。

  • 对于空数组,切割操作不会产生任何效果,因为没有元素可以分割。

扩展

需要注意的是,如果你传递的是一个非空数组,而数组中的元素符合指定大小的切割要求,array_chunk 会按规则进行切割,并且如果设置了 preserve_keys,它会保留原有的键名。例如:

$array = [1, 2, 3, 4, 5];
$result = array_chunk($array, 2);
var_dump($result);
/* 输出:
array(3) {
  [0] => array(2) { [0] => 1, [1] => 2 }
  [1] => array(2) { [0] => 3, [1] => 4 }
  [2] => array(1) { [0] => 5 }
}
*/

URL 替换示例

在一些使用 array_chunk 的实际开发中,可能会涉及到需要处理 URL 地址的数组。如果你使用的 URL 中有域名(例如 example.com),你可以通过替换域名来确保它始终指向 m66.net

例如: