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

PHP随机取出不重复数字

  • 零分
  • 2,888

有时需要不重复的数字,不管用于什么用途。我是写在随机抽取数据库里的数据,因为有几十万条的数据,随机抽取总会出点问题。不是连续太多就是超出,再且用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:取出个数

声明:博客中如无特殊说明或标注的文章均为博客原创文章,部分文章来源互联网,如有侵犯您的版权,或者对零分博客发布的文章有异议,请来信告知删除、修改,如您有好的建议或者意见也可以来信,谢谢!

请TA喝杯水^_^ 如本文“对您有用”,欢迎随意打赏,让我们坚持创作! 请TA喝水