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

2022-08-30 14:33:43

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


答案 1

我不知道为什么要费心使用,因为它只是一个额外的函数调用,似乎没有原因。简单地将前三个元素切片:array_rand()shuffle()

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

答案 2

无耻地从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 开始,您可能希望随机排列(随机化)通过 返回的密钥,否则它们将始终按顺序排列(最小索引优先)。也就是说,在上面的例子中,你可以得到“Neo,Trinity”,但永远不会得到“Trinity,Neo”。shuffle($rand_keys)

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