有两个数组需要合并两个匹配其键的数组,其余应为空。我已经尝试过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
)
答案 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);