【发布时间】:2014-08-01 04:36:00
【问题描述】:
如何合并两个数组:
$arr1 = [1 => 'a', 2 => '', 3 => 'c'];
$arr2 = [1 => 'd', 2 => 'e', 3 => 'f'];
然后得到:
[1 => 'a', 2 => 'e', 3 => 'c'];
我已经成功地做到了:
$arr1 = [1 => 'a', 3 => 'c'];
$arr2 = [1 => 'd', 2 => 'e', 3 => 'f'];
$arr1 + $arr2;
但是,有时 $arr1 还包含值 2 => '',它为空但存在,在这种情况下,键 2 不会被 $arr2 覆盖。
【问题讨论】:
-
看
array_merge -
为什么不
array_filter($arr1) + array_filter($arr2);? -
如果存在空值,我希望保留它们。无值、空值、非空值 - 我希望所有这些都出现在最终数组中。
-
您想要的结果:
[1 => 'a', 2 => 'e', 3 => 'c'];似乎与您的上述说法不符。看起来你想用 $arr1 上的空值填充键,而不是合并数组。这接近你预期的结果吗? -->array('a', '', 'c', 'd', 'e', 'f'); -
@Daan 谢谢!我意识到 array_merge 完成了这项工作(只是从另一边)。