penven

博客园 首页 新随笔 联系 订阅 管理

最近公司导入数据需要先去掉数组中的重复的手机号元素,在导入数据库中,所以看了一下这几种去重的方法的效率

/*
* 去重效率的比较
* 10W 个元素 
* array_unique 大约900ms左右 
* array_flip  大约10~15ms左右 
* foreach 循环去重  大约20ms左右 
* */


public function index() {
    // 创建100000个随机元素的数组
    for($i=0; $i<100000; $i++){
        $arr[] = mt_rand(1,1000);
    }

    $arr = array_unique($arr);


    $arr = array_flip($arr);
    $arr = array_keys(array_flip($arr));
    //$arr = array_keys($arr);  //使用array_keys 翻转后,键名顺序排 和再次使用array_flip的时间一样



    foreach($arr as $k=>$val) {
        $date[$val] = $val;
    }
    unset($arr); 
}

 

posted on 2017-06-26 09:27  penven  阅读(196)  评论(0编辑  收藏  举报