检查并返回PHP中的重复数组

55

我想检查我的数组是否有任何重复,并返回一个包含这些重复值的数组。我希望这个方法尽可能地高效。

例子:

$array = array( 1, 2, 2, 4, 5 );
function return_dup($array); // should return 2

$array2 = array( 1, 2, 1, 2, 5 );
function return_dup($array2); // should return an array with 1,2

而且初始数组始终有5个位置

11个回答

-3

$duplicate_array = array();

  for($i=0;$i<count($array);$i++){

    for($j=0;$j<count($array);$j++){

      if($i != $j && $array[$i] == $array[$j]){

        if(!in_array($array[$j], $duplicate_array)){

          $duplicate_array[] = $array[$j];

        }

      }

    }    

  }

以O(n^3)的时间复杂度,这绝对是最慢的方法。 - Sneftel
实际上是O(n^4)。in_array()方法的工作原理类似于循环。 - Md. Jamil Ahsan

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