检查并返回重复数组 php

2022-08-30 10:33:56

我想检查我的数组是否有任何重复项,并在数组中返回重复的值。我希望这尽可能高效。

例:

$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 个位置


答案 1

这将比array_diff快约100倍

$dups = array();
foreach(array_count_values($arr) as $val => $c)
    if($c > 1) $dups[] = $val;

答案 2

您可以使用array_uniquearray_diff_assoc获得原始阵列和没有重复副本的副本的区别:

array_diff_assoc($arr, array_unique($arr))