溫馨提示×

溫馨提示×

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

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

php可以實現(xiàn)隨機的函數(shù)有哪些

發(fā)布時間:2021-09-30 14:21:57 來源:億速云 閱讀:124 作者:小新 欄目:編程語言

這篇文章主要介紹php可以實現(xiàn)隨機的函數(shù)有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

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

本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦

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

1、rand產(chǎn)生隨機數(shù)

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

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

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

2、mt_rand產(chǎn)生隨機數(shù)

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

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

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

3、array_rand函數(shù)

<?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返回數(shù)組中隨機的鍵值,有點類似mt_rand()函數(shù),其余的沒什么特殊的地方,靈活運用而已。

4、shuffle函數(shù)

<?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函數(shù)是打亂一個數(shù)組的序列,有點隨機的意思,這里就放在隨機函數(shù)里了。返回值為bool值,相當(dāng)于直接引用了原變量。

5、str_shuffle函數(shù)

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

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

6、uniqid函數(shù)

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

uniqid能夠產(chǎn)生唯一的字符串,這個應(yīng)用的范圍可以相當(dāng)廣泛

以上是“php可以實現(xiàn)隨機的函數(shù)有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI