2016-09-23 58 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()