我有两个数组,其中新数组锁定旧数组中的重复键,并用新数组中的值替换该值,
旧数组
Array
(
[tool_situs] => Array
(
[template] => aa
[title] => bb
)
[style] => Array
(
[.title] => Array
(
[color] => red
[font-size] => 20px
)
)
)
和新数组
Array
(
[tool_situs] => Array
(
[title] => ddd
)
[style] => Array
(
[.title] => Array
(
[color] => #fff
)
)
)
我已经尝试使用array_merge_recursive()
但不替换重复键的值,只添加新数组的新值
Array
(
[tool_situs] => Array
(
[template] => aa
[title] => Array
(
[0] => aa
[1] => ddd
)
)
[style] => Array
(
[.title] => Array
(
[color] => Array
(
[0] => red
[1] => #fff
)
[font-size] => 20px
)
)
)
在数组ebove中, tool_situs-> title 仅从新数组中添加新数组,同时 style-> .title-> color 返回添加新值来自ne array。
帮助我如何同时使用tool_situs-> title和style-> .title->颜色替换为这个新数组的值
我会这样出来:
Array
(
[tool_situs] => Array
(
[template] =>aa
[title] => ddd
)
[style] => Array
(
[.title] => Array
(
[color] => #fff
[font-size] => 20px
)
)
)
答案 0 :(得分:0)
array_replace_recursive
就是您所需要的。
$array1 = your_first_array();
$array2 = your_second_array();
$result = array_replace_recursive($array1, $array2);
var_dump($result); //result array is same as what you've shown as output in your question.
答案 1 :(得分:0)
正如人们所说,你想要使用array_replace_recursive()
以下内容应该有效:
$updatedStyles = array_replace_recursive($currentStyles, $newStyles);
这对我来说会输出以下数组:
Array
(
[tool_situs] => Array
(
[template] => aa
[title] => ddd
)
[style] => Array
(
[title] => Array
(
[color] => blue
[font-size] => 20px
)
)
)