问题描述

嗨我正在尝试合并两个数组也想从最终的数组删除重复的值。

这是我的阵列 1:

Array
    (
    [0] => stdClass Object
    (
    [ID] => 749
    [post_author] => 1
    [post_date] => 2012-11-20 06:26:07
    [post_date_gmt] => 2012-11-20 06:26:07
)

这是我的阵列 2:

Array
(
[0] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07

)

我使用 array_merge 将这两个数组合并成一个数组。它是这样输出

Array
(
[0] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07

[1] => stdClass Object
(
[ID] => 749
[post_author] => 1
[post_date] => 2012-11-20 06:26:07
[post_date_gmt] => 2012-11-20 06:26:07

)

我想删除这个重复的条目,或者我可以在合并之前删除它… 请求帮助.. 谢谢!!!!!!!

最佳解决方案

array_unique(array_merge($array1,$array2), SORT_REGULAR);

http://se2.php.net/manual/en/function.array-unique.php

次佳解决方案

如上所述,可以使用 array_unique(),但只能在处理简单数据时使用。对象不是那么简单的处理。

当 php 尝试合并数组时,它会尝试比较数组成员的值。如果一个成员是一个对象,它将无法获取其值并使用 spl 哈希。 Read more about spl_object_hash here.

简单的说,如果你有两个对象,同一个类的实例,如果其中一个不是对另一个的引用 – 你最终会有两个对象,无论其属性的价值。

为了确保你在合并的数组中没有任何重复的内容,Imho 你应该自己处理这种情况。

另外,如果要合并多维数组,请考虑在 array_merge()上使用 array_merge_recursive()

第三种解决方案

尝试使用 array_unique()

这样可以清除数组列表中的重复数据。

第四种方案

它会合并两个数组并删除重复

<?php
 $first = 'your first array';
 $second = 'your second array';
 $result = array_merge($first,$second);
 print_r($result);
 $result1= array_unique($result);
 print_r($result1);
 ?>

尝试这个链接 link1

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。