找出数组重复的数据

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

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

  

转载于:https://www.cnblogs.com/jing1208/p/7079044.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值