站長資訊網
最全最豐富的資訊網站

php實現隨機的函數有哪些

php實現隨機的函數有:1、rand(),可生成隨機整數;2、mt_rand();3、array_rand(),可返回數組中的一個隨機鍵名;4、shuffle(),可隨機打亂數組;5、str_shuffle();6、uniqid()。

php實現隨機的函數有哪些

本教程操作環境:windows7系統、PHP7.1版,DELL G3電腦

PHP隨機函數主要有rand、mt_rand、array_rand,還有隨機“排列”(打亂順序)的函數shuffle、str_shuffle,能夠產生唯一ID的uniqid。

1、rand產生隨機數

<?php $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $count = strlen($base); $random = ''; for ($i=0; $i < 16; $i++) {   $random.=$base[rand(0,$count-1)]; } echo $random; ?>

rand()函數是使用libc 的隨機數發生器生成隨機數的,一般較慢,且有不確定因素,建議使用mt_rand函數替代。

getrandmax()函數可以返回rand函數能夠產生的最大的隨機數(我的系統為32767),所以在設置rand函數第二個參數時不要超高getrandmax的返回值。

2、mt_rand產生隨機數

<?php $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $count = strlen($base); $random = ''; for ($i=0; $i < 16; $i++) {   $random.=$base[mt_rand(0,$count-1)]; } echo $random; ?>

很多老的 libc 的隨機數發生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數默認使用 libc 隨機數發生器。mt_rand() 函數是非正式用來替換它的。該函數用了 ? Mersenne Twister 中已知的特性作為隨機數發生器,它可以產生隨機數值的平均速度比 libc 提供的 rand() 快四倍。強烈建議在開發過程中使用mt_rand函數取代rand。

如果沒有提供可選參數 min 和 max,mt_rand() 返回 0 到 mt_getrandmax() 之間的偽隨機數。例如想要 3到 20(包括 3 和 20)之間的隨機數,用 mt_rand(3, 20)。

3、array_rand函數

<?php $base = 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'); $random = ''; for ($i=0; $i < 16; $i++) {   $random.=$base[array_rand($base)]; } echo $random; ?>

array_rand返回數組中隨機的鍵值,有點類似mt_rand()函數,其余的沒什么特殊的地方,靈活運用而已。

4、shuffle函數

<?php $base = 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'); if(shuffle($base)){  print_r($base); } ?>

shuffle函數是打亂一個數組的序列,有點隨機的意思,這里就放在隨機函數里了。返回值為bool值,相當于直接引用了原變量。

5、str_shuffle函數

<?php $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; echo str_shuffle($base); ?>

這里str_shuffle的功能和shuffle的功能是類似的,唯一不同的是返回值,str_shuffle的原字符串是不變的。

6、uniqid函數

<?php echo uniqid(); //54f806528172f ?>

uniqid能夠產生唯一的字符串,這個應用的范圍可以相當廣泛

推薦學習:《PHP視頻教程》

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
四虎国产精品永久在线| 国产亚洲精品资源在线26u| 国内久久精品视频| 精品国产一区二区三区香蕉| 一区二区三区精品| 国产成人亚洲综合无码精品| 国产一区二区精品尤物| 九九精品视频在线播放8| 日韩亚洲欧洲在线com91tv| 国产精品国产三级国产专播下| 97香蕉久久夜色精品国产| 亚欧在线精品免费观看一区| 久久久无码精品亚洲日韩按摩| 久久精品国产亚洲沈樵| 一夲道无码人妻精品一区二区| 国产日韩高清三级精品人成 | 亚洲精品乱码久久久久久下载| freesexvideos精品老师毛多| 中文字幕日韩一区二区不卡| 久久精品无码一区二区三区日韩| 国产精品成人99一区无码| 国产精品高清在线观看93| 国内精品videofree720| 国产精品麻豆成人AV电影艾秋| 亚洲av永久无码精品秋霞电影秋| 中文字幕精品三区无码亚洲| 国产精品自在自线视频| 久久精品极品盛宴观看| 国产精品久久久久蜜芽| 亚洲精品456人成在线| 97热久久免费频精品99| 国产精品久久久久a影院| 国产精品国产福利国产秒拍| 午夜福利麻豆国产精品| 国产成人久久精品二三区麻豆| 成人区人妻精品一区二区不卡| 国产精品亚洲专区无码唯爱网| 久久国产精品成人无码网站| 精品一区狼人国产在线| 国产精品亚洲一区二区三区| 中日韩美中文字幕|