我怎样才能以上帝表演的方式做到这一点?我有两个用户电子邮件数组,如下所示:
$a = array ('ad@d.com', 'ac@d.com', 'ab@d.com', 'aa@d.com');
$b = array ('ac@d.com', 'ab@d.com');
所以我需要比较两个数组并将记录从 B 移动到底部(如果存在),因此生成的数组应该是:
$c = array( 'ad@d.com','aa@d.com','ac@d.com', 'ab@d.com');
当然这是一个示例数组,也许我的有 1000 条记录,这就是为什么我只想在便宜且不浪费资源时才这样做。谢谢!
这将为您提供所需的顺序:
$c = array_reverse(array_unique(array_reverse(array_merge($a, $b))));
这是一个更有效的解决方案:
$c = array_merge(array_diff($a, $b), $b);
您也可以将其包装在array_unique()
中,如果有可能出现您想要避免的重复条目。
如果您不关心订购,只需$c = $a + $b;
就可以解决问题。
你可以
像这样使用 array_merge
和 array_unique
函数:
$c = array_unique(array_merge($a,$b))
这将使用 $a
中的元素,并从$b
中添加不在 $b
中的元素。