php產生指定範圍內的不重複數字的方法:首先透過mt_rand()函數來產生隨機數;然後透過array_flip()函數去除重複數字即可。 array_flip()函數用於反轉數組中的鍵名和對應關聯的鍵值。
函數介紹:
(推薦教學:php教學)
mt_rand() 函數使用Mersenne Twister 演算法產生隨機整數。介於 min(或 0)與 max(或 mt_getrandmax())之間(包括邊界值)的隨機整數。如果 max < min 則回傳 FALSE。
提示:此函數是產生隨機值的較好選擇,回傳結果的速率是 rand() 函數的 4 倍。
array_flip() 函數用於反轉/交換陣列中的鍵名和對應關聯的鍵值。如果反轉成功,則傳回反轉後的陣列。如果反轉失敗,則傳回 NULL。
程式碼實作:
<?php /* * array unique_rand( int $min, int $max, int $num ) * 生成一定数量的不重复随机数,指定的范围内整数的数量必须 * 比要生成的随机数数量大 * $min 和 $max: 指定随机数的范围 * $num: 指定生成数量 */ function unique_rand($min, $max, $num) { $count = 0; $return = array(); while ($count < $num) { $return[] = mt_rand($min, $max); $return = array_flip(array_flip($return)); $count = count($return); } //打乱数组,重新赋予数组新的下标 shuffle($return); return $return; } //生成10个1到100范围内的不重复随机数 $arr = unique_rand(1, 100, 10); echo implode($arr, ","); ?>
程式運行結果:
48,5,19,36,63,72,82,77,46,16
以上是php如何產生指定範圍內的不重複數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!