zoukankan      html  css  js  c++  java
  • 找出数组重复的数据

    公司为了需要,导入数据的时候需要找出数据中手机号重读的数据,为此专门看了看一下两种方法的优劣,可能还有更好的方法,可能还会有更优的方法,还请指出来!

    /*
    * 找出数组中重复元素的位置
    * 第一种:循环找到重复元素用时: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);
    

      

  • 相关阅读:
    【项目】项目17
    【项目】项目16
    【项目】项目15
    【项目】项目14
    【项目】项目13
    【项目】项目12
    【项目】项目11
    【项目】项目10
    【项目】项目9
    【项目】项目8
  • 原文地址:https://www.cnblogs.com/jing1208/p/7079044.html
Copyright © 2011-2022 走看看