阅读量:2
array_merge和array_merge_recursive是PHP中用于合并数组的两个函数。它们的区别在于当数组键名冲突时的处理方式。
- array_merge函数:
- array_merge函数将一个或多个数组合并为一个数组。
- 当有多个数组作为参数传入时,它会按顺序将数组合并,后面的数组的元素会追加到前面数组的末尾。
- 如果数组的键名是数字,合并后的键名会重新索引。
- 如果数组的键名是字符串,且有相同的键名,后面的键名会覆盖前面的键名。
示例:
$array1 = array("color" => "red", 2, 4); $array2 = array("a", "b", "color" => "green", "shape" => "circle"); $mergedArray = array_merge($array1, $array2); print_r($mergedArray);
输出:
Array ( [color] => green [0] => 2 [1] => 4 [2] => a [3] => b [shape] => circle )
- array_merge_recursive函数:
- array_merge_recursive函数将一个或多个数组递归地合并为一个数组。
- 当有多个数组作为参数传入时,它会按顺序将数组合并,后面的数组的元素会追加到前面数组的末尾。
- 如果数组的键名是数字,合并后的键名会重新索引。
- 如果数组的键名是字符串,且有相同的键名,合并后的值会以数组形式存储。
示例:
$array1 = array("color" => array("favorite" => "red"), 2, 4); $array2 = array("color" => array("favorite" => "green", "blue"), "a", "b"); $mergedArray = array_merge_recursive($array1, $array2); print_r($mergedArray);
输出:
Array ( [color] => Array ( [favorite] => Array ( [0] => red [1] => green ) [0] => blue ) [0] => 2 [1] => 4 [2] => a [3] => b )
综上所述,array_merge和array_merge_recursive函数都可以用于合并数组,但在处理键名冲突时的方式不同。array_merge会覆盖前面的键名,而array_merge_recursive会将相同键名的值以数组形式存储。根据具体的需求选择适合的函数进行数组合并操作。