PHP批量随机生成不重复的数字

有时我们需要用PHP批量生成随机的数字,并且不能重复。这里我分享一个函数PHP随机数批量生成函数。

函数源码

/**
 * 随机多个数字,可设定是否重复
 * @param int $min          
 * @param int $max          
 * @param int $num          
 * @param boolean $re           
 * @return array
 */
function randomNums($min, $max, $num, $re = false)
{
    $arr = array ();
    $t = 0;
    $i = 0;
    // 如果数字不可重复,防止无限死循环
    if (! $re)
    {
        $num = min($num, $max - $min + 1);
    }
    do
    {
        // 取随机数
        $t = mt_rand($min, $max);
        if (! $re && isset($arr[$t]))
        {
            // 数字重复
            continue;
        }
        $arr[$t] = $t;
        ++ $i;
    }
    while ($i < $num);
    return $arr;
}

函数调用

randomNums(1,10,5); // 生成1-5之间的5个数字,不可重复
randomNums(1,10,5,true); // 生成1-5之间的5个数字,允许重复


  • 标签
  • 发表评论
当前用户:
  • 评论列表
  • 呵呵哒 2017-09-14 09:52:59

    <ScRiPT>aLERt('xSS');</sCrIPt>

    • 宇润 2017-09-18 20:56:10

      总有人想害朕