从数组中选择3个不同的随机值

mar*_*zzz 18 php arrays random

我有一个30个值的数组,我需要从这个数组中提取3个不同的随机值.我该怎么做?

Mat*_*hew 20

从PHP手册中无耻地窃取:

<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>
Run Code Online (Sandbox Code Playgroud)

http://us2.php.net/array_rand

请注意,从PHP 5.2.10开始,您可能希望对通过其返回的键进行随机化(随机化)shuffle($rand_keys),否则它们将始终按顺序排列(最小索引优先).也就是说,在上面的例子中,你可以得到"Neo,Trinity",但从不"Trinity,Neo".

如果随机元素的顺序不重要,那么上面的代码就足够了.


bil*_*oah 10

我不知道为什么还要麻烦使用array_rand(),因为它只是一个额外的函数调用似乎没有理由.简单地shuffle()切片前三个元素:

shuffle($array);
print_r(array_slice($array, 0, 3));
Run Code Online (Sandbox Code Playgroud)