NVG*_*NVG 24 php arrays duplicates
我想检查我的数组是否有任何重复项并返回数组中的重复值.我希望这个尽可能高效.
Example :$array = array(1,2,2,4,5)
function returndup($array) should return 2 ;
if array is array(1,2,1,2,5);
it should return an array with 1,2
Run Code Online (Sandbox Code Playgroud)
初始数组总是长5个位置
use*_*291 67
这将比array_diff快约100倍
$dups = array();
foreach(array_count_values($arr) as $val => $c)
if($c > 1) $dups[] = $val;
Run Code Online (Sandbox Code Playgroud)
Gum*_*mbo 18
你可以使用array_unique和得到原始数组和没有重复的副本的区别 array_diff_assoc:
array_diff_assoc($arr, array_unique($arr))
Run Code Online (Sandbox Code Playgroud)
function array_dup($ar){
return array_unique(array_diff_assoc($ar,array_unique($ar)));
}
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩.
小智 5
你可以这样做:
function showDups($array)
{
$array_temp = array();
foreach($array as $val)
{
if (!in_array($val, $array_temp))
{
$array_temp[] = $val;
}
else
{
echo 'duplicate = ' . $val . '<br />';
}
}
}
$array = array(1,2,2,4,5);
showDups($array);
Run Code Online (Sandbox Code Playgroud)
输出:
duplicate = 2
Run Code Online (Sandbox Code Playgroud)