【问题标题】:Merging an array but keeping values that weren't in the other array [duplicate]合并一个数组但保留不在另一个数组中的值[重复]
【发布时间】:2014-06-19 23:05:28
【问题描述】:

我要做的是用 PHP 读取一个 INI 文件,然后将该数组与另一个数组合并。例如:

$a1 = parse_ini_file("file1.ini",true);
$a2 = parse_ini_file("file2.ini",true);
$info = array_merge($a1,$a2);

现在我的问题是,如果我合并数组:如果将子数组写入第二个 ini 文件,则子数组将被完全替换。

file1.ini

[BASIC]
title=Title
otherInfo=1
[SECONDSECTION]
thestuffs=3

file2.ini

[BASIC]
otherInfo=6

现在,如果我查看合并后的数据 $info,我会得到如下信息:

$info = array(
    "BASIC" => array(
        "otherInfo" => 6
    ),
    "SECONDSECTION" => array(
        "thestuffs" => 3
    ),
);

预期结果:

$info = array(
    "BASIC" => array(
        "title" => "Title"
        "otherInfo" => 6
    ),
    "SECONDSECTION" => array(
        "thestuffs" => 3
    ),
);

【问题讨论】:

  • 你必须使用array_merge_recursive 而不是array_merge

标签: php arrays merge ini


【解决方案1】:

array_merge() 更改为array_merge_recursive()

【讨论】:

  • 不完全是我想要的,但我想我可以通过一些额外的检查让它工作得很好。检查永远不会出错。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-21
  • 2018-02-28
  • 2020-11-21
  • 1970-01-01
  • 2011-12-07
  • 1970-01-01
  • 2017-09-25
相关资源
最近更新 更多