繁体   English   中英

PHP函数生成唯一的n位数字随机数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM