如何比较数组键并仅在不匹配时覆盖';不存在


How to compare array keys and overwrite only if doesn't exist?

我想合并两个数组,其中第一个数组占主导地位,所有数组都将用相同的键覆盖另一个。

假设我有

$array1 = [
   'year'  => 1983,
]

$array2 = [
   'color' => red,
   'year'  => 1996,
   'name'  => Jim,
]

如何使$array3看起来像:

$array3 = [
   'color' => red,
   'year'  => 1983,
   'name'  => Jim,
]

因此,array1将始终覆盖相应的$array2值

但同时它应该

如果$array2不存在,则将该值添加到$array2中,例如此

$array1 = [
   'year'  => 1983,
]

$array2 = [
   'color' => red,
   'name'  => Jim,
]

应该变成:

$array3 = [
   'color' => red,
   'year'  => 1983,
   'name'  => Jim,
]

如何在PHP中做到这一点?

有没有什么函数可以设置哪个数组将是"主导"数组?

如果没有,如何通过代码实现?

您可以使用array_merge来完成此操作,请尝试以下操作:

<?php
$array1 = array(
   'year'  => 1983
);
$array2 = array(
   'color' => 'red',
   'year'  => 1996,
   'name'  => 'Jim'
);
$result = array_merge($array2, $array1);
print_r($result);
?>