php - 合并两个多维数组

标签 php arrays

我有两个多维数组,例如:

[a]
  [b]
    [c]             

[a]
  [b]
    [c]
    [d]

想把它变成一个数组

[a]
  [b]
    [c]
    [d]

我尝试了 array_merge_recursive() 函数,但它在最后一层创建新元素而不是覆盖它们。

例如,如果 [c] 在第一个数组中是 "X",在第二个数组中是 "Y",我获取 array("X", "Y") 而不是最后一个值 ("Y")。

最佳答案

这就是您要使用 array_replace_recursive 的目的吗?

<?php

$arr1 = array ('a' => array ('b' => array ('c' => 'X'), 'd' => 'array_1_d'));
$arr2 = array ('a' => array ('b' => array ('c' => 'Y', 'd' => 'Z')), 'e' => 'array_2_e');

$arr3 = array_replace_recursive ($arr1, $arr2);

var_dump($arr3);

输出:

array(2) {
  ["a"]=>
  array(2) {
    ["b"]=>
    array(2) {
      ["c"]=>
      string(1) "Y"
      ["d"]=>
      string(1) "Z"
    }
    ["d"]=>
    string(9) "array_1_d"
  }
  ["e"]=>
  string(9) "array_2_e"
}

http://www.php.net/manual/en/function.array-replace-recursive.php

关于php - 合并两个多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7731340/

相关文章:

php - mysql_fetch_object() 的错误处理 : supplied argument is not a valid MySQL result

php - 如何为 laravel 测试播种数据库迁移?

c++ - 原始数组是否比 std::array 有任何优势?

php - 如何在不知道索引值名称的情况下打印数组的值

arrays - 用重复列表填充 Julia 中的向量

javascript - 滚动最新成员的个人资料

php - 通过 FCM google-php-api HTTPv1 API 发送推送消息

php - MySQL 表到 xml 文件 : update files when tables are updated

c++ - shared_ptr<> 到数组自定义删除器(使用 make_shared)

ruby - 使用 initialize 定义带参数的类方法