如何在PHP中删除数组中的所有重复项?
首先,我想向所有重复提问的人指出,这些重复提问并不能完全回答我的问题 现在,我有一个数组。我们会说数组是如何在PHP中删除数组中的所有重复项?,php,arrays,Php,Arrays,首先,我想向所有重复提问的人指出,这些重复提问并不能完全回答我的问题 现在,我有一个数组。我们会说数组是array(1,2,2,3,4,3,2) 我需要删除重复项。不只是其中一个副本,而是所有副本,因此结果将是array(1,4) 我查看了,但这只会导致数组(1,2,3,4) 有什么想法吗?你可以结合使用,和: 第一个循环可以更有效地替换为$arrayCount=array\u count\u value($array),谢谢。我认为算法也很重要。有人已经发布了一个使用本机PHP函数的解决方案。
array(1,2,2,3,4,3,2)
我需要删除重复项。不只是其中一个副本,而是所有副本,因此结果将是array(1,4)
我查看了,但这只会导致数组(1,2,3,4)
有什么想法吗?你可以结合使用,和:
第一个循环可以更有效地替换为$arrayCount=array\u count\u value($array),谢谢。我认为算法也很重要。有人已经发布了一个使用本机PHP函数的解决方案。+1表示独创性,尽管当您看到这样一行代码时,很难理解其意图!这比Ciprian的方法要慢很多,我只是做了一个快速的基准测试,速度慢了4倍。有点奇怪。您可以将问题更改为:“如何从数组中删除重复项和重复值?”
array_diff($arr, array_diff_assoc($arr, array_unique($arr)))
function removeDuplicates($array) {
$valueCount = array();
foreach ($array as $value) {
$valueCount[$value]++;
}
$return = array();
foreach ($valueCount as $value => $count) {
if ( $count == 1 ) {
$return[] = $value;
}
}
return $return;
}