📜  PHP | array_replace_recursive()函数(1)

📅  最后修改于: 2023-12-03 15:03:36.146000             🧑  作者: Mango

PHP | array_replace_recursive()函数介绍

概述

array_replace_recursive() 函数用于递归地将一个或多个数组替换为另一个数组。如果数组具有相同的字符串键,则该键的值将被另一个数组中的值替换。如果一个值是数组,而另一个值是标量,则标量将被转换为数组,并且递归地与另一个值合并。array_replace_recursive()函数与 array_replace()函数的区别是 array_replace_recursive()函数会递归地对数组进行操作。

语法
array_replace_recursive ( array $array1 , array $array2 , array $··· ) : array
参数
  • $array1:必须,要替换的数组。
  • $array2:必须,替换数组的值。
  • $···:可选,可以传入多个数组。
返回值

返回一个数组,其中包含所有参数的数组替换结果。如果参数中只有一个数组,则返回该数组。

示例
$array1 = [
    "a"=>[
        "b"=>1,
        "c"=>2,
        "d"=>['x','y','z'],
    ]
];

$array2 = [
    "a"=>[
        "b"=>10,
        "d"=>[
            1,
            2,
        ],
    ],
    "e"=>"new",
];

$result = array_replace_recursive($array1,$array2);
print_r($result);

输出结果为:

Array
(
    [a] => Array
        (
            [b] => 10
            [c] => 2
            [d] => Array
                (
                    [0] => 1
                    [1] => 2
                )

        )

    [e] => new
)
注意事项
  • 如果值不是标量值,它们将递归地进行替换。
  • 只有一个数组作为参数时,它将被返回,但没有复制或执行任何递归操作。
  • 如果有两个或多个相同的字符串键,则每个键的值将被前一个参数的值替换。
  • 如果一个值是数组,而另一个值是标量,则标量将被转换为数组,并且递归地与另一个值合并。
  • 如果参数中有多个相同的数组,则后面的数组将覆盖前面的数组,除非它们的键是非字符串键。