【发布时间】:2016-04-25 21:54:36
【问题描述】:
我想知道在 PHP 中从数组中获取随机值数组的最简单/最干净的方法是什么。获取随机键数组很容易,但似乎没有立即获取值数组的功能
我发现的最简单的方法是:
$tokens = ['foo', 'bar', '...'];
$randomValues = array_map(function($k) use ($tokens) {
return $tokens[$k];
}, array_rand($tokens, rand(7, 20)))
这会从 $tokens 变量中返回 7-20 个随机值。然而,这看起来很丑陋,乍一看并不清楚它的作用。
【问题讨论】:
-
由于您的代码实际上正在运行,这看起来像 prime candidate 到 move 到 codereview.stackexchange.com
-
shuffle 然后 array_slice 得到你想要的值的数量
-
确定你没有得到重复的值吗?我会检查新数组中是否已经存在该值。