[英]PHP function to generate Unique n digits random numbers
我需要一个PHP函数来创建唯一的n位随机数; 这是我尝试过的
//Function to generate random code
function getUniqueCode($length)
{
for($i=0;$i<$length;$i++){
if($i==0)
$code = str_pad(mt_rand(1, 9), 1, '0', STR_PAD_LEFT);
else
$code .= str_pad(mt_rand(0, 9), 1, '0', STR_PAD_LEFT);
}
return $code;
}
如果我使用此功能生成9位数字,例如。 129534546,是否有可能生成并非唯一的数字,如果是,则应更改什么,以便可以确保重复数字的可能性为零
总是存在的可能性,无论是较小的还是较大的。
您可以从以前存储的号码中查看是否将它们保存在数据库中。
要么
第二个选择是,附加的随机数到一个名为numbers.txt
,通过seprated ,
并生成一个新号码时,检查该文件内是否匹配,如果匹配,生成另一个号码。
总是有机会使您最终得到重复的数字,不确定何时才能获得,所以可以将代码更改为此:
function getUniqueCode($length)
{
for($i=0;$i<$length;$i++){
if($i==0)
$code = str_pad(mt_rand(1, 9), 1, '0', STR_PAD_LEFT);
else
$code .= str_pad(mt_rand(0, 9), 1, '0', STR_PAD_LEFT);
}
return $code;
}
$tempArray = array();
$tempCode = getUniqueCode(9); //here 9 is number digit you want randon number you want
if (!in_array($tempCode, $tempArray)) {
$tempArray[] = $tempCode;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.