首頁  >  文章  >  後端開發  >  php如何產生指定範圍內的不重複數字

php如何產生指定範圍內的不重複數字

王林
王林原創
2020-07-23 15:58:092369瀏覽

php產生指定範圍內的不重複數字的方法:首先透過mt_rand()函數來產生隨機數;然後透過array_flip()函數去除重複數字即可。 array_flip()函數用於反轉數組中的鍵名和對應關聯的鍵值。

php如何產生指定範圍內的不重複數字

函數介紹:

(推薦教學: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn