PHP生成指定个不重复的随机数

已邀请:

llslx520

赞同来自:

<?php
/*
* 爱E族 aiezu.com
* $min 生成范围的最小值
* $max 生成范围的最大值
* $num 生成的数量
*/
function make_unique_rand($min, $max,  $num ) {
    $return = array();
    while(count($return)<$num && count($return)<($max-$min)+1) {
        $rand = mt_rand($min, $max);
        !in_array($rand, $return) && $return[] = $rand;
    }
    return $return;
}
// 在10000到99999之间生成10个不重复的随机数
print_r(make_unique_rand(10000, 99999, 10));
// 在2到4之间生成10个不重复的随机数, 只会生成3个
print_r(make_unique_rand(2, 4, 10));
输出结果:
Array
(
    [0] => 31296
    [1] => 11323
    [2] => 80877
    [3] => 52954
    [4] => 45881
    [5] => 14097
    [6] => 88944
    [7] => 37714
    [8] => 36809
    [9] => 10723
)
Array
(
    [0] => 4
    [1] => 2
    [2] => 3
)
生成随机字符串(含英文字母、数字、特殊字符)的方法请参考:http://aiezu.com/question/8.html

要回复问题请先登录注册