首頁 >後端開發 >PHP問題 >php如何產生不重複的序號

php如何產生不重複的序號

王林
王林原創
2020-09-01 13:58:003583瀏覽

php產生不重複的序號的方法:可以利用內建函數【mt_rand()】來實現,【mt_rand()】函數用於產生隨機整數,例如要產生一個介於10和100之間的隨機整數,具體代碼為:【mt_rand(10, 100)】。

php如何產生不重複的序號

php為我們提供了專門用於產生隨機數的函數mt_rand(),該函數以 Mersenne Twister 演算法產生隨機整數。

提示:此函數是產生隨機值的較好選擇,回傳結果的速度是 rand() 函數的 4 倍。

(推薦教學:php影片教學

範例:

產生一個介於10 和100 之間(包含10 和100)的隨機整數

mt_rand (10,100)

函數語法:

mt_rand();
or
mt_rand(min,max);

參數:

  • min    可選。規定傳回的最小數。預設是 0。   

  • max    可選。規定返回的最大數。

傳回值:

介於 min(或 0)與 max(或 mt_getrandmax())之間(包括邊界值)的隨機整數。如果 max < min 則回傳 FALSE。

(相關推薦:php訓練

程式碼實作:

//生成随机码
    function GetRandStr($len=10){
        $chars = array(
            "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
            "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
            "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
            "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
            "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",
            "3", "4", "5", "6", "7", "8", "9"
        );
        $charsLen = count($chars) - 1;
        shuffle($chars);
        $output = "";
        for ($i=0; $i<$len; $i++)
        {
            $output .= $chars[mt_rand(0, $charsLen)];
        }
        return $output;
    }
    //生成不在$arr中的序列号
    function getUniqueSerial($arr){
        $str = GetRandStr(64);
        if(in_array($str, $arr)){
            $str = getUniqueSerial($arr);
        }
        return $str;  
    }

以上是php如何產生不重複的序號的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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