如何比较两个数组并将记录移动到底部


How to Compare two arrays and move records to the bottom?

我怎样才能以上帝表演的方式做到这一点?我有两个用户电子邮件数组,如下所示:

$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_mergearray_unique 函数:

$c = array_unique(array_merge($a,$b))

这将使用 $a 中的元素,并从$b中添加不在 $b 中的元素。