[請益] 重發:取大量不重複亂數(包含特定英文)

看板PHP作者 (超high的5566)時間17年前 (2008/05/23 14:18), 編輯推噓4(403)
留言7則, 4人參與, 最新討論串1/2 (看更多)
$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)

05/23 14:32, , 1F
把發過的記錄起來啊,然後再去比對。不然就用流水號 ~__~
05/23 14:32, 1F

05/23 14:43, , 2F
同樓上
05/23 14:43, 2F

05/24 02:01, , 3F
上萬個的話,改用mt_rand(). rand()在這個數量會產生很多
05/24 02:01, 3F

05/24 02:01, , 4F
重複的結果。
05/24 02:01, 4F

05/24 02:03, , 5F
如果你只要做一次這件事,那有個偷吃步的方式是很快建立
05/24 02:03, 5F

05/24 02:03, , 6F
.......呃算了這做法不好 當我沒說:P
05/24 02:03, 6F

05/26 21:27, , 7F
試試看 uniqid()
05/26 21:27, 7F
文章代碼(AID): #18Dc6mXI (PHP)
文章代碼(AID): #18Dc6mXI (PHP)