如何在PHP中从数组中删除所有重复项?

13

首先,我想指出给所有寻找重复问题的人,这个问题并没有完全回答我的问题。

现在,我有一个数组。我们假设这个数组是array(1, 2, 2, 3, 4, 3, 2)

我需要删除重复项。不仅仅是其中一个重复项,而是所有的,所以结果将是array(1, 4)

我查看了array_unique(),但那只会导致array(1, 2, 3, 4)

有什么建议吗?


你可以通过将问题改为:“如何从数组中删除重复项和重复的值?”来消除歧义。 - Geoffrey
2个回答

17

+1 鼓励创新,但是当你看到这样一行代码时,很难读懂意图! - Paul Dixon
这比Ciprian的方法慢得多,我只是做了一个快速基准测试,这慢了4倍。有点令人惊讶。 - Paul Dixon

8

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;
}

第一个循环可以更高效地替换为 $arrayCount=array_count_values($array)。 - Paul Dixon
谢谢。我认为算法也很重要。已经有人使用本地PHP函数发布了一个解决方案。 - Ciprian L.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接