当前位置: 首页 » 笔记 » PHP随机取出不重复数字

PHP随机取出不重复数字

零分笔记2,4962023-02-04 21:11

有时需要不重复的数字,不管用于什么用途。我是写在随机抽取数据库里的数据,因为有几十万条的数据,随机抽取总会出点问题。不是连续太多就是超出,再且用rand()效率 也出错。join 总是出现很多连续的。就找了一个随机ID然后where in 来取出数据,这个主要ID 要连续的。要不然会出空值。我要随机100个,我就取出1000个,然后在选100个。

<?php    
function createRandID($s,$e,$n){    
    // 注意,要先声明一个空数组,否则while里的in_array会报错    
    $arr = array();    
    // 使用while循环,只要不够N个就永远循环    
    while(count($arr)<=$n){    
        // 产生一个随机数    
        $a = rand($s,$e);    
        // 判断:如果产生的随机数不再数组里就赋值到数组里    
        // 主要避免产生重复的数字    
        if(!in_array($a,$arr)){    
            // 把随机数赋值到数组里    
            $arr[] = $a;        
        }    
    }    
    // 返回产生的随机数字    
    return implode($arr,',');    
}    
echo createRandID(1,100,5); //实例,从1~100内取出5个不重复的随机数字   
?>  

这个随机数代码,效率还不错!

说明:$s:起始数,$e:结束数,$n:取出个数

END
零分站龄17年资深站长
一个喜欢折腾,却又折腾不出像样东西的,不会PHP的PHP程序员!
2517
文章
13
分类
3818
标签
3
友链
onlinelovesky317355746vipsever@vip.qq.com