《php從數(shù)組中隨機(jī)取一個(gè)數(shù)值或元素的2種方法比較》要點(diǎn):
本文介紹了php從數(shù)組中隨機(jī)取一個(gè)數(shù)值或元素的2種方法比較,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:PHP開發(fā)
PHP從數(shù)組中隨機(jī)取一個(gè)元素值。下面是兩種常用方法,略有小差別。
比如從這個(gè)數(shù)組中取一個(gè)元素。
$url=[ 'vephp.com', 'http://www.fzlkiss.com', 'www.fzlkiss.com' ];
方法1:使用array_rand() 取得隨機(jī)的一個(gè)下標(biāo)key,再用這個(gè)下標(biāo)去獲得隨機(jī)的數(shù)組元素。
$url[array_rand($url,1)];
方法2:使用rand()函數(shù):
$url[rand (0,count ($url)-1)];
我推薦后者,因?yàn)樵谑褂弥袝?huì)發(fā)現(xiàn)方法1的array_rand()每次抽取的變化機(jī)率不大,在同一批抽取中,經(jīng)常都是一樣的。估計(jì)是隨機(jī)數(shù)發(fā)生器播種問題。
而rand函數(shù)PHP 4.2 起,不需要再用 srand() 或 mt_srand() 函數(shù)給隨機(jī)數(shù)發(fā)生器播種,已自動(dòng)完成。因此變化機(jī)率大。
此外,rand的效率似乎也比array_rand高,不過沒做過壓測(cè),有興趣可以自己寫個(gè)for大循環(huán)對(duì)比一下。
所以,具體看你的應(yīng)用場(chǎng)景而定。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/143.html