如何使用array_merge_recursive合并和覆盖具有相同键和值的多维数组?假设我有两个阵列象下面这样:合并并覆盖两个或多个多维数组
$arr1 = array(
// OVERWRITE
array('prop_id' => 1, 'prop_value' => 'batman'),
array('prop_id' => 2, 'prop_value' => 'ironman'),
// NOT OVERWRITE
array('prop_id' => 5, 'prop_value' => 'wonderwoman'),
);
$arr2 = array(
array('prop_id' => 1, 'prop_value' => 'robin'),
array('prop_id' => 2, 'prop_value' => 'superman'),
array('prop_id' => 4, 'prop_value' => 'catwoman'),
);
我要合并,并用新的值覆盖它(规则是它不能覆盖相同的值比较关键),该预期的结果
$result = array_merge_overwrite($arr1, $arr2, array('prop_id') /* Comparison Key */);
$result = array(
array('prop_id' => 1 /* Comparison Key */, 'prop_value' => 'robin' /* Comparison value */),
array('prop_id' => 2, 'prop_value' => 'superman'),
array('prop_id' => 4, 'prop_value' => 'catwoman'),
array('prop_id' => 5, 'prop_value' => 'wonderwoman'),
);
随着array_merge_recursive它附加不overwrited,我尝试用array_replace_recursive象下面这样:
$result = array_replace_recursive(
array(
1 => array('prop_id' => 1, 'prop_value' => 'batman'),
2 => array('prop_id' => 2, 'prop_value' => 'ironman'),
5 => array('prop_id' => 5, 'prop_value' => 'wonderwoman'),
),
array(
1 => array('prop_id' => 1, 'prop_value' => 'robin'),
2 => array('prop_id' => 2, 'prop_value' => 'superman'),
4 => array('prop_id' => 4, 'prop_value' => 'catwoman'),
),
);
它的工作原理,但我的代码看起来肮脏和肮脏。任何比我的更好的解决方案