Mar*_*cus 131
$digits = 3;
echo rand(pow(10, $digits-1), pow(10, $digits)-1);
Run Code Online (Sandbox Code Playgroud)
这将输出一个介于100和999之间的数字.这是因为10 ^ 2 = 100和10 ^ 3 = 1000然后您需要用一个减去它以使其在所需范围内.
如果005也是一个有效的例子,你可以使用以下代码用前导零填充它:
$digits = 3;
echo str_pad(rand(0, pow(10, $digits)-1), $digits, '0', STR_PAD_LEFT);
Run Code Online (Sandbox Code Playgroud)
Cod*_*ian 23
我通常只使用RAND() http://php.net/manual/en/function.rand.php
例如
rand ( 10000 , 99999 );
Run Code Online (Sandbox Code Playgroud)
为您的5位数随机数
hal*_*dan 13
你可以rand($min, $max)用于这个目的.
为了将值限制为x位数值,您可以使用以下内容:
$x = 3; // Amount of digits
$min = pow(10,$x);
$max = pow(10,$x+1)-1);
$value = rand($min, $max);
Run Code Online (Sandbox Code Playgroud)
Aks*_*ale 12
这是一个简单的解决方案,没有任何循环或任何麻烦,这将允许您创建带有字符,数字甚至特殊符号的随机字符串.
$randomNum = substr(str_shuffle("0123456789"), 0, $x);
哪里$x可以是位数
例如.
substr(str_shuffle("0123456789"), 0, 5);
几次执行后的结果
98450
79324
23017
04317
26479
Run Code Online (Sandbox Code Playgroud)
您也可以使用相同的代码生成随机字符串,就像这样
$randomNum=substr(str_shuffle("0123456789abcdefghijklmnopqrstvwxyzABCDEFGHIJKLMNOPQRSTVWXYZ"), 0, $x);
Run Code Online (Sandbox Code Playgroud)
结果用 $x = 11
FgHmqpTR3Ox
O9BsNgcPJDb
1v8Aw5b6H7f
haH40dmAxZf
0EpvHL5lTKr
Run Code Online (Sandbox Code Playgroud)
将您的号码视为数字列表,每次只需附加一个随机数字:
function n_digit_random($digits) {
$temp = "";
for ($i = 0; $i < $digits; $i++) {
$temp .= rand(0, 9);
}
return (int)$temp;
}
Run Code Online (Sandbox Code Playgroud)
或者纯粹的数值解决方案:
function n_digit_random($digits)
return rand(pow(10, $digits - 1) - 1, pow(10, $digits) - 1);
}
Run Code Online (Sandbox Code Playgroud)
function random_numbers($digits) {
$min = pow(10, $digits - 1);
$max = pow(10, $digits) - 1;
return mt_rand($min, $max);
}
Run Code Online (Sandbox Code Playgroud)
我能想到的最简单的方法就是使用rand函数str_pad
<?php
echo str_pad(rand(0,999), 5, "0", STR_PAD_LEFT);
?>
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,它将生成0到999范围内的随机数.
并有5位数.
rand(1000, 9999); 工作速度比x4倍快 rand(0,9);
风向标:
rand(1000, 9999) : 0.147 sec.
rand(0,9)x4 times : 0.547 sec.
Run Code Online (Sandbox Code Playgroud)
这两个函数都在100000次迭代中运行,以使结果更加明确
那么你可以使用简单的 php 函数 mt_rand(2000,9000) 它可以生成一个 4 位随机数
mt_rand(2000,9000)
Run Code Online (Sandbox Code Playgroud)