[英]How to generate x digit random number?
我必須生成16位隨機數,例如充值卡密碼。(在起始位置包括0)這是我的代碼
function gen_num($len) {
$rand = '';
while(!(isset($rand[$len-1]))){
$rand .= mt_rand(0,9);
}
return substr( $rand , 0 , $len );
}
它工作正常,但需要花費一些時間來生成。如果我想同時生成1000引腳
foreach($i=0;$i<=1000;$i++){
get_num(16)
}
這需要更多時間。生成這種引腳的最佳方法是什么?
您可以嘗試使用此功能。
function getRandomNumber($len = "15")
{
$better_token = $code=sprintf("%0".$len."d", mt_rand(1, str_pad("", $len,"9")));
return $better_token;
}
for($i=0;$i<=1000;$i++){
$codes[]=getRandomNumber(16);
}
在$ code數組中,您將獲得所有16位數字,包括0.將生成如下所示的輸出
Array
(
[0] => 6432618102990092
[1] => 5412363498471678
[2] => 8415870470926167
[3] => 2724858690053225
[4] => 3719462379813195
[5] => 0322053456788270
[6] => 5085590323433281
[7] => 3586620986461640
[8] => 5041978429071606
[9] => 0722051602788270
.....
$a = '';
for ($i = 0; $i<16; $i++)
{
$a .= mt_rand(0,9);
}
您可以使用此功能生成隨機數。
可能會有相同的數字生成twise,因此您可以將此數字放入數組中,並檢查數組號是否已存在。
function gen_num() {
$rand = 0;
for ($i = 0; $i<15; $i++)
{
$rand .= mt_rand(0,9);
}
return $rand;
}
foreach($i=0;$i<=1000;$i++){
echo get_num();
}
O / P
1992282192849338
2539119565182977
8186185479424499
9762937534145386
5565837949946845
6487684896937977
1437518184397774
1586381543857153
5673128433587996
4988724673517522
8323477255626612
這樣的事情就可以了:
function random_digits($length) {
$length = intval($length, 10);
$output = '';
for ($i = 0; $i < $length; $i++) {
$output .= mt_rand(0, 9);
}
return $output;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.