在PHP中,数组函数 array_replace () 使用传递的数组替换第一个数组的元素。
函数语法:
array_replace ( array $array1 [, array $array2, array $array3,... ] ) : array
函数参数说明:
参数 | 描述 |
---|---|
array1 | 必需。指定一个数组。 |
array2 | 可选。指定一个要替换 array1 的值的数组。 |
array3,... | 可选。指定多个要替换 array1 和 array2, ... 的值的数组。后面数组的值将覆盖之前数组的值。 |
array_replace() 使用传递的数组替换第一个数组的元素。
替换规则如下:
如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。
如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。
如果一个键仅存在于第一个数组,它将保持不变。
如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。
和array_replace_recursive() 是递归替换不同的是,array_replace() 是非递归的:它将第一个数组的值进行替换而不管第二个数组中是什么类型。
举例1,替换第一个数组的元素:
<?php // 定义数组 $arr1 = ['a', 'b', 'c']; $arr2 = ['1', '2', '3']; // 替换第一个数组的元素 $res = array_replace($arr1, $arr2); var_dump($res);
以上代码输出如下:
array (size=3) 0 => string '1' (length=1) 1 => string '2' (length=1) 2 => string '3' (length=1)
举例2,替换第一个数组的元素:
<?php // 定义数组 $arr1 = ['a', 'b', 'c']; $arr2 = ['1', '4' => '2', '3']; // 替换第一个数组的元素 $res = array_replace($arr1, $arr2); var_dump($res);
以上代码输出如下:
array (size=5) 0 => string '1' (length=1) 1 => string 'b' (length=1) 2 => string 'c' (length=1) 4 => string '2' (length=1) 5 => string '3' (length=1)
举例3,替换数组的内部元素(和array_replace_recursive方法递归替换不同,array_replace直接替换):
<?php // 定义数组 $arr1 = ['0' => ['a1', 'a10','a100'], 'b', 'c']; $arr2 = ['0' => ['a2', 'a20'], '4' => '2', '3']; // 替换第一个数组的元素 $res = array_replace($arr1, $arr2); var_dump($res);
以上代码输出如下:
array (size=5) 0 => array (size=2) 0 => string 'a2' (length=2) 1 => string 'a20' (length=3) 1 => string 'b' (length=1) 2 => string 'c' (length=1) 4 => string '2' (length=1) 5 => string '3' (length=1)