如何用phpfor循环生成5位,数字字母组合,永不不重复

如题所述

如果你希望永不重复 建议采用 PHP GUID

GUID是什么

GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。

PHP中并不提供GUID的内部实现。为此我们可以自己写算法实现。代码片段如下:
function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"
return $uuid;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-11
不可能永不重复,你算一下,数字共10位,字母26位,共36位字符。
显示是5位,即36*36*36*36*36次机会,等于60466176。
也只是6000万,越使用重复的机率越高。本回答被提问者和网友采纳
第2个回答  2013-09-11
function getRandom($param){
    $str="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $key = "";
    for($i=0;$i<$param;$i++)
     {
         $key .= $str{mt_rand(0,60)};    //生成php随机数
     }
     return $key;
 }
 getRandom(5);

希望对你有所帮助!

追问

这是我的四位数字,字母组合循环。。。应该不会有重复。。。但是貌似很繁琐。。。

追答

-_-#,我不明白你想问什么啊亲?至于你的代码不用说了,大眼一看就知道很麻烦!

第3个回答  2013-09-11
en 楼上说的对,不可能永不重复的

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网