我需要创建一个有x位数字的随机数。
比如,如果x是5,我需要一个类似35562的数字。 如果x是3,则会返回类似463的数字。
有人能向我展示如何做到这一点吗?
比如,如果x是5,我需要一个类似35562的数字。 如果x是3,则会返回类似463的数字。
有人能向我展示如何做到这一点吗?
0
作为第一个数字。 - Danon以下是一个简单的解决方案,无需任何循环或麻烦,可以让您创建带有字符、数字甚至特殊符号的随机字符串。
$randomNum = substr(str_shuffle("0123456789"), 0, $x);
其中$x
可以是数字位数。
例如:substr(str_shuffle("0123456789"), 0, 5);
几次执行后的结果:
98450
79324
23017
04317
26479
您可以使用同样的代码生成随机字符串,像这样
$randomNum=substr(str_shuffle("0123456789abcdefghijklmnopqrstvwxyzABCDEFGHIJKLMNOPQRSTVWXYZ"), 0, $x);
当 $x = 11
时的结果
FgHmqpTR3Ox
O9BsNgcPJDb
1v8Aw5b6H7f
haH40dmAxZf
0EpvHL5lTKr
rand($min, $max)
来实现该目的。$x = 3; // Amount of digits
$min = pow(10,$x);
$max = pow(10,$x+1)-1);
$value = rand($min, $max);
$x
位数字的数,而不是在某个数字和$x
之间的数字。 - Michael Berkowski把你的数字看作是一串数字列表,在每次追加一个随机数字:
function n_digit_random($digits) {
$temp = "";
for ($i = 0; $i < $digits; $i++) {
$temp .= rand(0, 9);
}
return (int)$temp;
}
或者使用纯数值解:
function n_digit_random($digits)
return rand(pow(10, $digits - 1) - 1, pow(10, $digits) - 1);
}
rand
函数和str_pad
。<?php
echo str_pad(rand(0,999), 5, "0", STR_PAD_LEFT);
?>
function random_numbers($digits) {
$min = pow(10, $digits - 1);
$max = pow(10, $digits) - 1;
return mt_rand($min, $max);
}
在 这里 进行了测试。
x
位数了。编辑:算了,我想我明白你的意思了。不,它不会创建像“093”这样的数字。 - animusonrand(1000, 9999);
比rand(0,9);
的速度快了4倍以上。
基准测试:
rand(1000, 9999) : 0.147 sec.
rand(0,9)x4 times : 0.547 sec.
为了让结果更明显,这两个函数都运行了100000次。
你可以使用简单的PHP函数 mt_rand(2000,9000) 来生成一个四位数的随机数字。
mt_rand(2000,9000)
您可以使用mt_rand()
函数生成任何x位随机数。
mt_rand()
比rand()
更快。
语法:mt_rand()
或mt_rand($min,$max)
。
示例:<?php echo mt_rand();?>