【发布时间】:2011-06-26 19:40:43
【问题描述】:
我想使用 PHP mt_rand() 函数生成一个 6 位随机数。
我知道 PHP mt_rand() 函数只需要 2 个参数:一个 minimum 和一个 maximum 值。
我该怎么做?
【问题讨论】:
标签: php security random mcrypt
我想使用 PHP mt_rand() 函数生成一个 6 位随机数。
我知道 PHP mt_rand() 函数只需要 2 个参数:一个 minimum 和一个 maximum 值。
我该怎么做?
【问题讨论】:
标签: php security random mcrypt
这样的?
<?php
$a = mt_rand(100000,999999);
?>
或者这样,那么第一个例子中的第一个数字可以是0,只能是1到9
for ($i = 0; $i<6; $i++)
{
$a .= mt_rand(0,9);
}
【讨论】:
<?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;
}
?>
【讨论】:
您可以使用以下代码。
<?php
$num = mt_rand(100000,999999);
printf("%d", $num);
?>
这里是 mt_rand(min,max);
min = 指定要返回的最小数字。
max = 指定要返回的最大数字。
`
【讨论】:
例子:
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
【讨论】:
如果第一个成员编号可以为零,则需要对其进行格式化以在必要时用零填充。
<?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
?>
【讨论】:
据了解,应该是这样的;
function rand6($min,$max){
$num = array();
for($i=0 ;i<6;i++){
$num[]=mt_rand($max,$min);
}
return $num;
}
【讨论】:
你可以这样内联:
$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
)
【讨论】: