php数组(三) array_merge_recursive


array_merge_recursive是针对多维数组的情况,递归的对数组元素进行合并

1、特性验证
<?php
$ar1 = array("color" => array("favorite" => "red", "blue"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
?>

 输出:如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。需要注意的是,如果数组具有相同的数值键名,后一个值将不会覆盖原来的值,而是附加到后面。

类似于array_merge,对于数字key会重排,并不会覆盖原数组元素, 字符串类型的key则不同,会放在同一个数组中,比如favorite

Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )

            [0] => blue
            [1] => blue
        )

    [0] => 5
    [1] => 10
)

 2、测试array_merge合并多维数组

<?php
$ar1 = array("color" => array("favorite" => "red", "blue"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge($ar1, $ar2);
print_r($result);
?>

输出:array_merge合并数组时,不是递归合并,并且会覆盖原数组元素,例如color

Array
(
    [color] => Array
        (
            [favorite] => green
            [0] => blue
        )

    [0] => 5
    [1] => 10
)

 

posted on 2021-08-02 20:41  1450811640  阅读(60)  评论(0编辑  收藏  举报