PHP:合并两个数组,但只保留第一个数组中的键

时间:2016-07-13 14:21:36

标签: php arrays

我有这个方法合并两个数组,如下所示:

<?php
$array1 = [
    'huey' => 0,
    'dewey' => 1,
    'louie' => 2
];

$array2 = [
    'dewey' => 3,
    'beagle boys' => '  167-671'
];

$array3 = array_merge($array1, $array2);

var_dump($array3);

问题是,即使更新了“dewey”键,我也不希望我的阵列中有“beagle boys”键。 如何更新我的代码以仅输出第一个数组上的键?

2 个答案:

答案 0 :(得分:2)

$array3 = array_merge(
    $array1,
    array_intersect_key($array2, $array1)
);

答案 1 :(得分:0)

仅复制array1中存在的array2中的数据

$array1 = [
    'huey' => 0,
    'dewey' => 1,
    'louie' => 2
];

$array2 = [
    'dewey' => 3,
    'beagle boys' => '  167-671'
];

$array3 = $array1;

foreach ($array1 as $key => $values){
  if (isset($array2[$key])) {
    $array3[$key] = $array2[$key];
  }
}

print_r($array3);