2016-09-23 61 views
-1

我想從數組中隨機選擇一些值,但我不確定最好的方式來做到這一點(就性能而言)。我只是一個初學者,所以我不知道許多隨機數值的方法,也不知道它們如何影響性能和它們之間的確切差異。例如:「mt_rand」比「rand」函數快四倍。隨機值選項

如果我有這個數組名稱:

$myarrayofnames = ["Marcelle","Caroll","Kristina","Tisha","Filomena","Vesta","Josphine"]; 

,我想向他們挑,我有哪些選擇?

+0

使用'洗牌()''洗牌($ myarrayofnames);'隨機,有多少價值,你想獲得隨機做。 ? – devpro

+0

只有一個......所以,我喜歡這樣:'$ shuffle($ myarrayofnames);'然後返回? – winadalwin

+0

[如何從數組中獲取隨機值]的可能重複(http://stackoverflow.com/questions/1643431/how-to-get-random-value-out-of-an-array) – iainn

回答

1

注意mt_rand()rand()只是產生隨機沒有。

From the Manual: mt_rand - 生成更好的隨機值

From the Manual:蘭特 - 生成一個隨機整數

爲了您的陣列,您可以使用array_rand()用於獲取隨機值。

例子:

$myarrayofnames = ["Marcelle","Caroll","Kristina","Tisha","Filomena","Vesta","Josphine"]; 
$randomNo = array_rand($myarrayofnames,1); 
echo $myarrayofnames[$randomNo]; // this will print the random value 

如果你只是想只有一個與陣列單一價值超過你可以通過1在第二PARAM。

如果您希望陣列中有多個值,那麼您可以根據陣列索引計數通過no。在這種情況下,array_rand()將返回一個數組。

如果您想了解Difference between mt_rand() and rand()