Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP合并两个数组,改进代码_Php - Fatal编程技术网

PHP合并两个数组,改进代码

PHP合并两个数组,改进代码,php,Php,我有以下经过测试的代码,经过几次尝试后,可以从两个合并的数组中筛选出唯一的结果。我以前尝试过使用array_diff、array_diff_key、array_diff_assoc,但都没有用,直到我解决了以下问题 第二个需要首先使用array_filter排除空值(如0),否则空值(“红色”=>“0”)也会打印在合并结果中,这是不期望的 数组_unique从合并中删除重复项 因此,下面的工作正如预期的那样,但我想知道是否有任何改进的代码,这看起来有点像缠绕。我的意思是,我对代码是否正确执行

我有以下经过测试的代码,经过几次尝试后,可以从两个合并的数组中筛选出唯一的结果。我以前尝试过使用array_diff、array_diff_key、array_diff_assoc,但都没有用,直到我解决了以下问题

  • 第二个需要首先使用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,即使在这两个对中存在空返回的情况下。我最好回客厅去。谢谢