作者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)
推 gamewolf:把發過的記錄起來啊,然後再去比對。不然就用流水號 ~__~ 05/23 14:32
推 arrack:同樓上 05/23 14:43
推 MrMarcus:上萬個的話,改用mt_rand(). rand()在這個數量會產生很多 05/24 02:01
→ MrMarcus:重複的結果。 05/24 02:01
→ MrMarcus:如果你只要做一次這件事,那有個偷吃步的方式是很快建立 05/24 02:03
→ MrMarcus:.......呃算了這做法不好 當我沒說:P 05/24 02:03
推 JimmyLi:試試看 uniqid() 05/26 21:27