我有两个要递归合并的数组,因此添加数组不是一种选择。这是一个没有多级的简单示例来演示问题:
$a1 = Array(
5 => 'pronoun'
)
$a2 = Array(
2 => 'verb',
3 => 'noun'
)
$r = array_merge_recursive($a1, $a2)
我想得到那个结果数组:
Array(
5 => 'pronoun'
2 => 'verb',
3 => 'noun'
)
我的问题是array_merge_recursive
函数重新索引键,我得到以下信息:
Array(
0 => 'pronoun'
1 => 'verb',
2 => 'noun'
)
我知道这是因为我所有的键都是数字的。因此,我尝试在添加时将它们设为字符串,但它似乎无法正常工作:
$a1[(string)7] = 'some value';
键 - 7 - 仍然是数字,或者至少它是在调试器中显示的方式 -$a1[7]
而不是$a1['7']
. 有什么建议吗?
编辑:添加数组不是一种选择。请看看为什么。我有两个多级数组:
$a1 = array (
1 => array (
1 => "man1",
2 => "man"
),
2 => array (
1 => "run",
2 => "nice"
)
);
$a2 = array(
2 => array (
1 => "to observe",
2 => "to examine visually"),
3 => array(
1 => "look nice",
2 => "appear, seem to be"));
$r = $a1 + $a2;
我期望的是以下内容:
$r = Array(
...
2 => array(
1 => array("run", "to observe")
2 => array("nice", "to examine visually")
));
但是没有添加第二个数组中键 2 的选项:
$r = Array(
...
2 => array(
1 => "run",
2 => "nice"
));