如何在PHP中从数组中选择随机值?

Chr*_* B. 5 php arrays random

我在PHP中有一个对象数组.我需要随机选择其中的8个.我最初的想法是使用,array_rand(array_flip($my_array), 8)但这不起作用,因为对象不能充当数组的键.

我知道我可以使用shuffle,但随着阵列数量的增长,我担心性能问题.这是最好的方式,还是有更高效的方式?

Vol*_*erK 8

$result = array();
foreach( array_rand($my_array, 8) as $k ) {
  $result[] = $my_array[$k];
}
Run Code Online (Sandbox Code Playgroud)


Enl*_*ned 7

$array = array();
shuffle($array); // randomize order of array items
$newArray = array_slice($array, 0, 8);
Run Code Online (Sandbox Code Playgroud)

请注意,shuffle()函数将参数作为参考并对其进行更改.