是否可以在PHP中为函数array_rand获得更好的随机(伪随机)。 像random_int(在PHP 7中添加)
谢谢
答案 0 :(得分:1)
array_rand
返回数组的随机键,默认情况下为 。此功能使用Mersenne Twister。如果您只需要一个随机值的数组,则可以使用random_int
。
例如:
// One array:
$array = [0 => 'aaa', 100 => 'bbb', 'c' => 'ccc'];
// Force numeric key (now will be [0 => 'aaa', 1 => 'bbb', 2 => 'ccc']):
$array = array_values($array);
// Get one number between 0 and 2 (in this case):
$random_key = random_int(0, count($array) - 1);
echo $array[$random_key];
// Response: bbb
为了更容易使用,您可以使用以下内容:
function random_array(array $array) {
$array = array_values($array);
return $array[ random_int(0, count($array) - 1) ];
}
只打电话:
$array = [0 => 'aaa', 100 => 'bbb', 'c' => 'ccc'];
echo random_array($array);
// Response: ccc