PHP合并两个数组,改进代码
我有以下经过测试的代码,经过几次尝试后,可以从两个合并的数组中筛选出唯一的结果。我以前尝试过使用array_diff、array_diff_key、array_diff_assoc,但都没有用,直到我解决了以下问题PHP合并两个数组,改进代码,php,Php,我有以下经过测试的代码,经过几次尝试后,可以从两个合并的数组中筛选出唯一的结果。我以前尝试过使用array_diff、array_diff_key、array_diff_assoc,但都没有用,直到我解决了以下问题 第二个需要首先使用array_filter排除空值(如0),否则空值(“红色”=>“0”)也会打印在合并结果中,这是不期望的 数组_unique从合并中删除重复项 因此,下面的工作正如预期的那样,但我想知道是否有任何改进的代码,这看起来有点像缠绕。我的意思是,我对代码是否正确执行
- 第二个需要首先使用array_filter排除空值(如0),否则空值(“红色”=>“0”)也会打印在合并结果中,这是不期望的李>
- 数组_unique从合并中删除重复项
$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))));
任何改进都是值得赞赏的。谢谢
更新:
抱歉,我在需求中发展得很晚,后来我意识到我也应该考虑用ARARY2替换第一个ARARY1,即使在这两个都存在对空返回的情况下也是如此。我最好回客厅去。谢谢您的代码也正在从数组1写入空值 无需使用array_unique,因为array_merge将自动删除合并重复值 $array1=数组(“a”=>“绿色”、“b”=>“紫色”、“蓝色”=>“0”)
$array2=数组(“a”=>“0”、“b”=>“紫色”、“蓝色”=>“蓝色”、“红色”=>“0”)
$merge=array_merge($array1,array_filter($array2))
您的代码还将从array1写入空值 无需使用array_unique,因为array_merge将自动删除合并重复值 $array1=数组(“a”=>“绿色”、“b”=>“紫色”、“蓝色”=>“0”)
$array2=数组(“a”=>“0”、“b”=>“紫色”、“蓝色”=>“蓝色”、“红色”=>“0”)
$merge=array_merge($array1,array_filter($array2))
我会得到你想要的,但根据你的代码结果,我猜这个或类似的东西会对你有用
$merge=$array1+array\u过滤器($array2)代码>我会得到你想要的,但根据你的代码结果,我想这个或类似的东西会对你有用
$merge=$array1+array\u过滤器($array2)代码>您忘了告诉我们您的功能要求。这是很重要的,因为你说不知道你写的代码是否表达了它们。抱歉,我在需求中发展得很晚,后来我意识到我也应该考虑用ARARY2替换第一个ARARY1,即使在这两个对中存在空返回的情况下。我最好回客厅去。谢谢你忘了告诉我们你的功能要求了。这是很重要的,因为你说不知道你写的代码是否表达了它们。抱歉,我在需求中发展得很晚,后来我意识到我也应该考虑用ARARY2替换第一个ARARY1,即使在这两个对中存在空返回的情况下。我最好回客厅去。谢谢