array_replace_recursive()

1. 定义

该函数与函数array_replace()类似,使用后面的参数(数组)替换前面参数(数组)里的同键名元素,但如果同键名的两个元素都是数组时,在这两个数组中也会递归地替换其值。 返回替换后的数组。

注:

  • 如果后面数组中包含前面数组中不存在的元素,那么返回的数组中也会添加进这个元素
  • 该函数可接受多个参数

2. 语法

array_replace_recursive ( array $array1 [, array $... ] ) : array

3. 参数说明

参数 可选性 数据类型 描述
$array1 必需 数组 第一个将被替换元素的数组
$... 可选 数组 含有替换元素的数组

4. 示例

<?php

// array_replace_recursive()
// 使用后面的参数(数组)替换前面参数(数组)里的同键名元素,但如果同键名的两个元素都是数组时,在这两个数组中也会递归地替换其值

$base_arr = ['name'=>'极速教程', 'host'=>'https://www.jisuapi.com/', 'business'=>['weather', 'translate', 'recognize', 'joke']];
$replace_arr1 = ['address'=>'杭州', 'name'=>'极速数据', 'business'=>['weather', 'translate', 'poetry']];
$replace_arr2 = ['name'=>'我到底做了什么你们总是要取代我', 'comment'=>'极速教程棒棒哒', 'business'=>['movie', 'express']];
$res = array_replace_recursive($base_arr, $replace_arr1, $replace_arr2);
var_dump($res);
/* 输出:
array(5) {
  ["name"]=>
  string(45) "我到底做了什么你们总是要取代我"
  ["host"]=>
  string(24) "https://www.jisuapi.com/"
  ["business"]=>
  array(4) {
    [0]=>
    string(5) "movie"
    [1]=>
    string(7) "express"
    [2]=>
    string(6) "poetry"
    [3]=>
    string(4) "joke"
  }
  ["address"]=>
  string(6) "杭州"
  ["comment"]=>
  string(21) "极速教程棒棒哒"
}
*/

5. 延展阅读

  • array_replace():使用后面的参数(数组)替换前面参数(数组)里的同键名元素,返回替换后的数组
  • array_merge_recursive():递归地合并一个或多个数组