PHP数组与键匹配合并

时间:2016-06-14 14:29:54

标签: php arrays merge

有两个数组需要合并两个匹配其键的数组,其余应为空。我已经尝试过array_merge,array_diff,array_fill但是没有任何帮助我有点新手,在此先感谢。

数组一

Array
    (
        [5] => PHM
        [4] => ODM
        [3] => N
        [6] => M9
        [10] => RDM9
    )

数组2

 Array
  (
    [0] => 01
    [1] => 02
    [2] => 03
    [3] => 04
    [4] => 05
    [5] => 06
    [6] => 07
    [7] => 08
    [8] => 09
    [9] => 10
    [10] => 11
    [11] => 12
    [12] => 13
   )

最终输出

Array
  (
    [0] => null 
    [1] => null 
    [2] => null 
    [3] => N
    [4] => ODM
    [5] => PHM
    [6] => M9
    [7] => null 
    [8] => null 
    [9] => null 
    [10] => RDM9
    [11] =>  null   
    [12] => null 
   )

2 个答案:

答案 0 :(得分:5)

使用第二个数组中的所有空值生成数组,并用第一个数组中的值替换

$arr2 = array_fill_keys(array_flip($arr2), null);
$new = array_replace($arr2, $arr1);
print_r($new);

答案 1 :(得分:1)

您可以将数组2传递给foreach循环,并使用if / else语句检查数组1中的键是否存在于数组1中,如果是,则将元素$output[$key]的值设置为NULL ,否则将值指定为$arr1[key]

   foreach ($arr2 as $key=> $value){
       $output[$key]=(!array_key_exists($key, $arr1)) ? NULL : $arr1[$key];
    }
    var_dump($output);