两个数组使用+连接

更新于 2025-10-03

在 PHP 中,使用加号(+)运算符连接两个数组时,并不是简单地将两个数组的元素合并到一起,而是按照键名合并

  • 如果两个数组有相同的键名,则第一个数组的值会被保留,第二个数组该键对应的值会被忽略。
  • 如果第二个数组有第一个数组没有的键,则这些键值会被追加到结果中。

示例代码:

$a = [0 => 'a', 1 => 'b'];
$b = [1 => 'c', 2 => 'd'];

$result = $a + $b;
print_r($result);

输出:

Array
(
    [0] => a
    [1] => b
    [2] => d
)

说明:

  • 1 在两个数组中都出现了,结果中取的是 $a'b',而不是 $b'c'
  • 2 只在 $b 中出现,结果中它的值是 'd'

如果你想要顺序合并而不是根据键名覆盖,可以用 array_merge()

$a = [0 => 'a', 1 => 'b'];
$b = [1 => 'c', 2 => 'd'];

$result = array_merge($a, $b);
print_r($result);

输出:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)

总结:

  • $a + $b:按键名合并,左侧优先。
  • array_merge($a, $b):顺序合并,键名会被重新分配(如果是数字键)。
浙ICP备19039918号-1