溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php取不重復隨機數的方法

發布時間:2020-09-04 10:20:31 來源:億速云 閱讀:230 作者:小新 欄目:編程語言

這篇文章主要介紹了php取不重復隨機數的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

php取不重復隨機數的方法:首先通過“mt_random($min,$max)”方法隨機取區間內的一個值;然后通過兩次“key-value”交換實現不重復的隨機數即可。

php取不重復隨機數的方法

PHP中生產不重復隨機數的方法

PHP內置函數不重復隨機數

需求:要生成一個數組,這個數組里面有10個元素,都是整形,并且是1-60之間不重復的隨機數。

代碼:

代碼示例:

<?php   
function get_randoms($min,$max,$num){  
       $count = 0;  
       $res = array();  
       while($count<$num){  
    $res[] = mt_random($min,$max);  
    $res = array_flip(array_flip($res));   
    $count = count($res);  
        }  
        return $res;  
 }  
    
$result = get_randoms(1,60,10);  
?>

在這里 他用$count 結果數組的個數,他在while 循環中 使得結果數組的個數小于 目標個數。通過這樣,獲取到$count 是 目標個數 的一個數組。

期間,每一個循環中,通過mt_random($min,$max),隨機出區間內的一個值,存放到數組$res中,然后通過兩次key-value 交換,也就是通過數組key的唯一性,使得做到不重復。

我看了這個邏輯的代碼之后,我不禁陷入了深思,假如說當你不知道array_filp 函數的時候你怎么做?

說白了就是用key的唯一性,使得隨機數不會存在重復。那么我們能不能將這個問題簡單化處理呢?

代碼示例:

<?php   
function get_randoms($min,$max,$num){  
   $count = 0;  
   $res = array();  
   while($count<$num){  
   $key = mt_random($min,$max);  
   $res[$key] = $key;  
   $count = count($res);  
       }  
       return $res;  
}  
$result = get_randoms(1,60,10);  
?>

這樣完全是單獨的通過數組key的唯一性  解決了這個問題。根本就不會用到array_flip。

總結:

1,因為php提供了大量的內置函數,他們的執行效率都很高。在遇到問題的時候,盡可能去用它去解決問題。這樣方便而且快速。

2,php 提供了大量的內置函數,執行效率也很高,但是,雖然效率高,還是需要時間去執行的。

在遇到問題的時候,不要盲目的去做,可以先看清處理方法的本質,以便于巧妙的實現他。

感謝你能夠認真閱讀完這篇文章,希望小編分享php取不重復隨機數的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女