问题描述
嗨我正在尝试合并两个数组也想从最终的数组删除重复的值。
这是我的阵列 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。