php中array_rand函数的效率如何

  • 时间:
  • 浏览:15

从一个数组中随机取出n个值,用array_rand()可以轻易的实现,当面对大数组的时候,我们会担心他的效率、性能问题。


我测试了一下,当在一个大小为一万的数组中随机取出20个值,即array_rand($arr, 20)的时候,程序只花费了0.005s左右,效率非常高。平时基本上都不会遇到这么大的数组吧,所以我们不必担心array_rand效率问题了。


同时,我用了另外一种用随机数的方法。

$arr = array(1,2,3,4,5...9999);

for($i=0; $i<20; $i++)

{

$rands = mt_rand(0,9999);

$aa[] = $arr[$rands];

}

运行程序,也只需要大概0.005s左右。


我猜想,array_rand底层的算法可能就是以上这种方法做出来的。所以取数组中随机值,放心大胆的用array_rand吧。