[請益] 怎麼保証不會產生重覆的亂數

看板PHP作者時間15年前 (2010/05/12 12:26), 編輯推噓1(107)
留言8則, 4人參與, 最新討論串1/5 (看更多)
如果我要產生一萬筆(可能更多 ) 而裡面的資料是由 一個陣列像這樣 $my_array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'm', 'n', 'p', '2', '3', '4', '5','6','7','8','9'); 利用array_rand的方式 亂數抓10個出來 再把它組合成一個字串,再把字串寫入到資料庫去 之前,我是在寫入到資料庫的時候,又做一次select count 的sql 查詢 可是發現這樣子,整個網頁很容易當(還沒到php 的timeout時間就掛了) 拿掉之後,就比較不會當了 但是我要怎麼確保這些字串絕對不會重覆到,如果不做查詢的話 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.39.194

05/12 12:54, , 1F
你是想做序號之類的嗎? 試試uniqid
05/12 12:54, 1F

05/12 13:04, , 3F
可是有辦法,讓產生出來的序號裡面的值是符合我所設定的
05/12 13:04, 3F

05/12 13:06, , 4F
陣列裡面的元素嗎,因為不想要有o0O這些很容易混淆的字出現
05/12 13:06, 4F

05/12 13:21, , 5F
用array的key當storage 用count()去count
05/12 13:21, 5F

05/12 13:26, , 6F
不懂樓上的意思,uniqid 不是只能傳pre_fix跟一個位數的值
05/12 13:26, 6F

05/12 13:26, , 7F
05/12 13:26, 7F

05/12 13:53, , 8F
不要count 用where看看,我幾十萬筆在產生 也是OK
05/12 13:53, 8F
文章代碼(AID): #1BwYu3fJ (PHP)
討論串 (同標題文章)
文章代碼(AID): #1BwYu3fJ (PHP)