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 中被合并,其他数组中的键和值都被忽略。