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

时间:2010-10-15 20:11:27

标签: php arrays random

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

3 个答案:

答案 0 :(得分:18)

从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";
?>

http://us2.php.net/array_rand

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

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

答案 1 :(得分:7)

我不确定为什么要使用array_rand(),因为它只是一个额外的函数调用似乎没有理由。只需shuffle()并切片前三个元素:

shuffle($array);
print_r(array_slice($array, 0, 3));

答案 2 :(得分:4)

使用shuffle($array)然后array_rand($array,3)