【发布时间】:2011-10-21 23:39:15
【问题描述】:
我需要以某种不同的方式合并一些数组,我使用 array_merge_recursive。 但是有一些东西我需要改变,我不知道如何改变。 这是来自 php.net 的引用
但是,如果数组具有相同的数字键,则后面的值 不会覆盖原始值,但会被追加。
我想要这个值,而不是被附加,我不想在新数组中附加确切的值。希望你理解这一点。
例子:
$array = array(
'some' => array(
'other' => 'key',
),
);
$array2 = array();
$array2['some']['other'] = 'key2';
如果我使用 array_merge_recursive 会产生这样的结果:
Array (
[some] => Array
(
[other] => Array
(
[0] => key
[1] => key2
)
) )
我希望它匹配相同的结果,而不是追加它。是的,我知道,你会说,然后使用 array_merge,但它也不能很好地工作。 如果我使用这个:
$array = array(
'some' => array(
'other' => 'key',
),
);
$array2 = array();
$array2['some']['other2'] = 'key2';
print_r(array_merge($array, $array2));
它会从列表中删除$array[some][other],只留下$array[some][other2]。我不知道哪个更好,因为没有人让它变得更好。
【问题讨论】:
-
你的数组中的嵌套有多深?只有一层?
-
那么告诉我们你的结果应该是什么?
-
嗯,它可能是无限的。我不会只使用它的1级。
-
@scube 结果应该是(如果使用 array_merge)不要从第一个数组中删除先前的项目。第二个示例显示: Array ( [some] => Array ( [other2] => key2 ) ) 我想显示: Array ( [some] => Array ( [other] => key [other2] => key2 ) )
-
@Alex: 你对执行这个有什么期望: $array = array( 'some' => array( 'other' => 'key', ), ); $array2['some']['other'] = 'key2';何时使用 array_merge_recursive?
标签: php arrays recursion merge