最近公司导入数据需要先去掉数组中的重复的手机号元素,在导入数据库中,所以看了一下这几种去重的方法的效率
/* * 去重效率的比较 * 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); }