[請益] 請問抓亂數

看板PHP作者 (夏夜晚風的愛)時間16年前 (2008/08/16 10:59), 編輯推噓4(4010)
留言14則, 4人參與, 最新討論串1/1
爬文得知有這個好物可以用 array_rand 可是我設定範圍是1~10 隨機取5數 $output = array_rand(range(1,10), 5); 結果都會偶爾取到 0 @@? 請問是哪裡出問題了呢? -- Which way for me forever ........... Would you wait for me forever ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.192.19.79

08/16 11:27, , 1F
我想你用這個就好了:http://tw.php.net/rand
08/16 11:27, 1F

08/16 11:46, , 2F
array_rand()取出的是隨機的陣列鍵,並非值!
08/16 11:46, 2F

08/16 11:48, , 3F
range(1,10)輸出為array() { [0] => 1, [1]=> 2, ..}
08/16 11:48, 3F

08/16 11:48, , 4F
所以你的程式必須改為:
08/16 11:48, 4F

08/16 11:49, , 5F
$rng = range(1,10);
08/16 11:49, 5F

08/16 11:49, , 6F
$output = array($rng,5);
08/16 11:49, 6F

08/16 11:51, , 7F
修正 $output = array_rand($rng, 5);
08/16 11:51, 7F

08/16 11:52, , 8F
for ($i = 0; $i < count($output); $i++) {
08/16 11:52, 8F

08/16 11:53, , 9F
echo $rng[$output[$i]]; }
08/16 11:53, 9F

08/16 11:58, , 10F
寫得很亂~"~ 因為時間有點趕.. 還有官方範例很清楚
08/16 11:58, 10F

08/16 13:12, , 11F
其實... PHP有rand()啊... 要更準確點就用srand()設
08/16 13:12, 11F

08/16 13:12, , 12F
亂數種子就好.. 不用這麼大費周章啦
08/16 13:12, 12F

08/16 14:29, , 13F
的確很大費周章~"~ rand 簡單多了 !
08/16 14:29, 13F

08/16 22:20, , 14F
可是我要取的亂數不得重複 用RAND必須自行判斷重複
08/16 22:20, 14F
文章代碼(AID): #18fa9tRQ (PHP)