温馨提示×

php 数组合并array_merge与array_merge_recursive详解

PHP
小亿
78
2023-12-19 07:19:49
栏目: 编程语言

array_merge和array_merge_recursive是PHP中用于合并数组的两个函数。它们的区别在于当数组键名冲突时的处理方式。

  1. 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
)
  1. 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会将相同键名的值以数组形式存储。根据具体的需求选择适合的函数进行数组合并操作。

0