如果不存在,如何比较数组键和覆盖?

时间:2016-01-08 02:21:00

标签: php arrays

我想合并两个数组,其中第一个是占优势的数组,而那里的所有数据都会用相同的键覆盖其他数组。

让我说我有

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

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

如何使$ array3看起来像:

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

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

但与此同时它应该

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

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

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

应该成为:

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

如何在PHP中执行此操作?

是否有任何功能可以设置哪个数组将是"显性"一个?

如果没有,如何通过代码完成?

1 个答案:

答案 0 :(得分:0)

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

<?php
$array1 = array(
   'year'  => 1983
);

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