知识问答

php合并数组array_merge函数运算符加号与的区别

PHP 中有两种合并数组的方式,分别是使用 array_merge 函数和数组运算符 +(加号)。

array_merge 函数

array_merge 函数会将多个数组合并成一个数组,返回的新数组中,所有的输入的数组的值都会保留,并以它们的原始键作为新数组的键。如果有相同的键,则后面的值会覆盖前面的值。

$firstArray = ['a', 'b', 'c'];$secondArray = ['d', 'e', 'f'];$mergedArray = array_merge($firstArray, $secondArray);print_r($mergedArray);

执行上述代码后,输出结果为:

Array(    [0] => a    [1] => b    [2] => c    [3] => d    [4] => e    [5] => f)

可以看到,使用 array_merge 函数后,$firstArray 和 $secondArray 按顺序合并成了一个新的数组 $mergedArray,在 $mergedArray 中相同键的值会被后面的值覆盖。

也可以将多个数组一起传递给 array_merge 函数:

$firstArray = ['a', 'b', 'c'];$secondArray = ['d', 'e', 'f'];$thirdArray = ['g', 'h', 'i'];$mergedArray = array_merge($firstArray, $secondArray, $thirdArray);print_r($mergedArray);

执行上述代码后,输出结果为:

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

数组运算符 +

数组运算符 + 可以用于将两个或多个数组合并成一个数组。如果有相同的键,+ 运算符会保留左侧数组中的值而忽略右侧数组中的值。

$firstArray = ['a' => 'apple', 'b' => 'banana'];$secondArray = ['b' => 'berry', 'c' => 'cherry'];$mergedArray = $firstArray + $secondArray;print_r($mergedArray);

执行上述代码后,输出结果为:

Array(    [a] => apple    [b] => banana    [c] => cherry)

在这个例子中,$firstArray 和 $secondArray 都含有键 b,但是 $firstArray 的值为 'banana',$secondArray 的值为 'berry',因此使用 + 运算符时,保留了 $firstArray 中的值。

如果在 + 运算符中传递多个数组,则只合并第一个数组中唯一的键,因为后面所有的数组都会被忽略。

$firstArray = ['a' => 'apple', 'b' => 'banana'];$secondArray = ['b' => 'berry', 'c' => 'cherry'];$thirdArray = ['d' => 'date', 'e' => 'elderberry'];$mergedArray = $firstArray + $secondArray + $thirdArray;print_r($mergedArray);

执行上述代码后,输出结果为:

Array(    [a] => apple    [b] => banana    [c] => cherry    [d] => date    [e] => elderberry)

在这个例子中,只有第一个数组 $firstArray 中的键 a 和 b 是唯一的,因此只有这两个键在 $mergedArray 中被合并,其他数组中的键和值都被忽略。