《PHP應用:PHP 生成N個不重復的隨機數》要點:
本文介紹了PHP應用:PHP 生成N個不重復的隨機數,希望對您有用。如果有疑問,可以聯系我們。
PHP實例起因:
PHP實例有25幅作品拿去投票,一次投票必要選16幅,單個作品一次投票只能選擇一次.前面有個程序員捅了漏子,忘了把投票入庫,有200個用戶產生的投票序列為空.那么你會如何填補這個漏子?
PHP實例當然向上級反映情況.但是我們這里討論的是技術,就是需要生成1-25之間的16個不重復的隨機數,去填補.具體怎么設計函數呢?將隨機數存入數組,再在數組中去除重復的值,即可生成必定數量的不重復隨機數.
PHP實例程序如下:
PHP實例程序運行如下:
PHP實例補充幾點說明:
PHP實例生成隨機數時用了 mt_rand() 函數.這個函數生成隨機數的平均速度要比 rand() 快四倍.
去除數組中的重復值時用了“翻翻法”,便是用 array_flip() 把數組的 key 和 value 交換兩次.這種做法比用 array_unique() 快得多.
返回數組前,先使用 shuffle() 為數組賦予新的鍵名,保證鍵名是 0-n 連續的數字.如果不進行此步驟,可能在刪除重復值時造成鍵名不連續,給遍歷帶來麻煩.
《PHP應用:PHP 生成N個不重復的隨機數》是否對您有啟發,歡迎查看更多與《PHP應用:PHP 生成N個不重復的隨機數》相關教程,學精學透。維易PHP學院為您提供精彩教程。