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

时间:2015-01-17 22:13:34

标签: php arrays sorting

我怎样才能以神的表现方式做到这一点?我有两个这样的用户电子邮件数组:

$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条记录,这就是为什么我想要这样做只是因为它便宜而不浪费资源。 Thanhs!

2 个答案:

答案 0 :(得分:1)

这将为您提供所需的订单:

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

以下是更高效解决方案:

$c = array_merge(array_diff($a, $b), $b);

如果您有可能避免重复输入,也可以将其包装在array_unique()中。

如果您不关心订购,只需$c = $a + $b;即可。

答案 1 :(得分:-2)

您可以使用array_mergearray_unique功能,如下所示:

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

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