我有以下经过测试的代码,经过几次尝试后,可以从两个合并数组中过滤出独特的结果。我之前尝试使用array_diff,array_diff_key,array_diff_assoc无效,直到我解决了以下问题。
所以下面的工作正如预期的那样,但是我想知道代码是否有任何好处,看起来有点像缠绕。我的意思是我对代码是否正确完成没有信心:
$array1 = array("a" => "green", "b" => "purple", "blue" => "0");
$array2 = array("a" => "0", "b" => "purple", "blue" => "blue", "red" => "0");
$merge = array_unique(array_merge($array1, array_values(array_filter($array2))));
非常感谢任何改善。感谢
更新: 对不起,我在需求方面发展较晚,后来我意识到我还应该考虑用array2替换第一个array1,即使在两者都存在时NULL返回。我最好回到我的客厅。感谢
答案 0 :(得分:2)
我得到你想要的东西,但根据你的代码结果,我猜这个或类似的东西对你有用。
$merge = $array1 + array_filter($array2);
答案 1 :(得分:1)
您的代码也是从array1写入空值
无需使用array_unique,因为array_merge会自动删除合并重复值
$ array1 = array(“a”=>“green”,“b”=>“purple”,“blue”=>“0”);
$ array2 = array(“a”=>“0”,“b”=>“purple”,“blue”=>“blue”,“red”=>“0”);
$ merge = array_merge($ array1,array_filter($ array2));