Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中删除数组中的所有重复项?_Php_Arrays - Fatal编程技术网

如何在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;
}