作者high5566 (超high的5566)
看板PHP
标题[请益] 重发:取大量不重复乱数(包含特定英文)
时间Fri May 23 14:18:23 2008
$ran_chars = '23456789ABCDEFGHJKMNPQRSTUVWXYZ';
$n=0;
while($n<10){ // 测试是 10 笔,需求是大量,上万 ...
$ran_string="^_<";
for($i = 0; $i < 10; $i++){
$ran_string .= $ran_chars[rand(0, 31)];
}
}
这个用途是产生序号的
需求 1 : 产生开头都是 ^_< 的序号
需求 2 : 因为常常使用者会分不清楚 o O I L
所以就决定乾脆全部都大写,然後把上面的字元拿掉
这行程式可以产生 31 的 10 次方的乱数,虽然已经够乱了
但还是要 100% 保证这个序号是不重复的,请问该怎麽做
感谢 ~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.222.190.190
※ 编辑: high5566 来自: 61.222.190.190 (05/23 14:19)
1F:推 gamewolf:把发过的记录起来啊,然後再去比对。不然就用流水号 ~__~ 05/23 14:32
2F:推 arrack:同楼上 05/23 14:43
3F:推 MrMarcus:上万个的话,改用mt_rand(). rand()在这个数量会产生很多 05/24 02:01
4F:→ MrMarcus:重复的结果。 05/24 02:01
5F:→ MrMarcus:如果你只要做一次这件事,那有个偷吃步的方式是很快建立 05/24 02:03
6F:→ MrMarcus:.......呃算了这做法不好 当我没说:P 05/24 02:03
7F:推 JimmyLi:试试看 uniqid() 05/26 21:27