我需要一个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,是否有可能生成不唯一的数字,如果是,我应该更改什么,以便我可以确定重复数字的可能性为零
答案 0 :(得分:0)
总有可能,无论是更小还是更大。
您可以检查以前存储的号码,是否将它们保存在数据库或其他内容中。
OR
第二个选项是,将随机数附加到名为numbers.txt
的文件中,由,
分隔,并在生成新数字时,检查文件中是否匹配,如果匹配,则生成另一个数字
答案 1 :(得分:0)
总有一个机会你可能最终得到重复的数字,不知道什么时候可能,但可能会改变代码:
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;
}