【问题标题】:How to get better random for array_rand in PHP [closed]如何在 PHP 中为 array_rand 获得更好的随机性 [关闭]
【发布时间】:2017-03-03 19:52:15
【问题描述】:

是否有可能为 PHP 中的函数 array_rand 获得更好的随机(伪随机)。 类似 random_int 的东西(在 PHP 7 中添加)

谢谢

【问题讨论】:

标签: php arrays random php-7


【解决方案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

Test it!

【讨论】:

  • 是的。以同样的方式完成。谢谢,我相信它会对人们有所帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 2012-12-15
  • 2010-09-05
  • 1970-01-01
相关资源
最近更新 更多