【发布时间】:2014-10-31 22:55:13
【问题描述】:
我需要合并这两个数组:
$ar1 = array("color" => array("red", "green"), "aa");
$ar2 = array("color" => array( "green", "blue"), "bb");
$result = array_merge_recursive($ar1, $ar2);
预期输出:
[
'color' => [
(int) 0 => 'red',
(int) 1 => 'green',
(int) 3 => 'blue'
],
(int) 0 => 'aa',
(int) 1 => 'bb'
]
但它输出:
[
'color' => [
(int) 0 => 'red',
(int) 1 => 'green',
(int) 2 => 'green', (!)
(int) 3 => 'blue'
],
(int) 0 => 'aa',
(int) 1 => 'bb'
]
我正在寻找执行此操作的最简单方法,我的数组输入不会比这些示例更深。
【问题讨论】:
-
已经测试过了,但是不行。它输出:
['color' => [ 'geen', 'blue'], 'bb'] -
手册解释说,见“描述”,它只会合并“字符串”键,“数字”键将被附加。可悲的是,这会阻止“array_merge_recursive”函数在不修改“键”的情况下执行您需要的操作。我可以建议您的代码使用“命名”键更可靠吗?
-
我不能,它是巨大 conf 的一部分,所以我必须对数据进行分组。
标签: php arrays multidimensional-array array-merge