生成一个N位随机数

时间:2011-02-14 09:53:10

标签: php security random mcrypt

我想使用PHP mt_rand()函数生成一个6位数的随机数。

我知道PHP mt_rand()函数只需要2个参数: minimum maximum 值。

我该怎么做?

7 个答案:

答案 0 :(得分:68)

这样的东西?

<?php 
$a = mt_rand(100000,999999); 
?>

或者这个,那么在第一个例子中第一个数字可以是0,它只能是1到9

for ($i = 0; $i<6; $i++) 
{
    $a .= mt_rand(0,9);
}

答案 1 :(得分:3)

  

您可以使用以下代码。

  <?php 
  $num = mt_rand(100000,999999); 
  printf("%d", $num);
  ?>

这里mt_rand(min,max);
min =指定要返回的最小数字 max =指定要返回的最大数字。

`

答案 2 :(得分:2)

示例:

print rand() . "<br>"; 
//generates and prints a random number
print rand(10, 30); 
//generates and prints a random number between 10 and 30 (10 and 30 ARE included)
print rand(1, 1000000); 
//generates and prints a random number between on and one million

More Details

答案 3 :(得分:1)

如果第一个成员编号可以为零,那么您需要对其进行格式化,以便在必要时用零填充。

<?php 
$number = mt_rand(10000,999999);
printf("[%06s]\n",$number); // zero-padding works on strings too
?>

或者,如果它可以为零,那么你可以这样做:

<?php 
$number = mt_rand(0,999999);
printf("[%06s]\n",$number); // zero-padding works on strings too
?>

答案 4 :(得分:1)

据了解,它应该是那样的;

function rand6($min,$max){
    $num = array();

    for($i=0 ;i<6;i++){
    $num[]=mt_rand($max,$min);

    }
return $num;
}

答案 5 :(得分:1)

你可以在网上这样做:

$randomNumbersArray = array_map(function() {
    return mt_rand(); 
}, range(1,6));

或者类似的方式,有一个功能:

$randomNumbersArray = giveMeRandNumber(6);

function giveMeRandNumber($count)
{
    $array = array();
    for($i = 0; $i <= $count; $i++) {
        $array[] = mt_rand(); 
    }
}

这将生成如下数组:

Array
(
    [0] => 1410367617
    [1] => 1410334565
    [2] => 97974531
    [3] => 2076286
    [4] => 1789434517
    [5] => 897532070
)

答案 6 :(得分:1)

    <?php
//If you wanna generate only numbers with min and max length:
        function intCodeRandom($length = 8)
        {
          $intMin = (10 ** $length) / 10; // 100...
          $intMax = (10 ** $length) - 1;  // 999...

          $codeRandom = mt_rand($intMin, $intMax);

          return $codeRandom;
        }
?>