找出數組重復的數據


公司為了需要,導入數據的時候需要找出數據中手機號重讀的數據,為此專門看了看一下兩種方法的優劣,可能還有更好的方法,可能還會有更優的方法,還請指出來!

/*
* 找出數組中重復元素的位置
* 第一種:循環找到重復元素用時:150ms左右  10W條數據
* 第二種:循環找到重復元素用時:76ms左右   10W條數據
*
* 第一種:循環找到重復元素用時:750ms左右  100W條數據
* 第二種:循環找到重復元素用時:750ms左右  100W條數據
* */

// 創建10W個隨機元素的數組
for($i=0; $i<100000; $i++){
    $arr[] = mt_rand(1,1000);
}

//第一種
foreach($arr as $key=>$value){
if(!isset($resultArr[$value])){
     $resultArr[$value] = 1;
}else{
     $resultArr[$value]++;
}
}
foreach($arr as $key=>$value){
if($resultArr[$value] > 1){
     $data[$value][] = $key;
}
}
unset($arr)

//第二種
$date = array_flip($arr);
foreach($arr as $k=>$v) {
    if(isset($date[$v])) {
        $date[$v] .= $k . ",";
    }
}
unset($arr);

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM