看板 PHP 關於我們 聯絡資訊
※ 引述《knives ()》之銘言: : 如果我要產生一萬筆(可能更多 ) : 而裡面的資料是由 : 一個陣列像這樣 : $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時間就掛了) : 拿掉之後,就比較不會當了 : 但是我要怎麼確保這些字串絕對不會重覆到,如果不做查詢的話 tbl rowStr char(10) rowRand unsigned int index key $n=count($my_array); $a = array_fill(0, 10, 0); for($i=1;$i<20000;$i++){ $a[0]++; for($j=0;$j<9;$j++){ if($a[$j]>=$n){ $a[$j]-=$n; $a[$j+1]++; } else break; } if($a[9]>=$n)die('error'); $s=$my_array[$a[9]].$my_array[$a[8]].$my_array[$a[7]].$my_array[$a[6]]. $my_array[$a[5]].$my_array[$a[4]].$my_array[$a[3]].$my_array[$a[2]]. $my_array[$a[1]].$my_array[$a[0]]; $sql ='INSERT INTO tbl(rowStr,rowRand) VALUES ('; $sql.='"'.$s.'",ROUND(RAND()*10000)'; $sql.=')'; mysql_query($sql); } 然後 SELECT rowStr FROM tbl ORDER BY rowRand; 就是你要的了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.76.137.169