PHP:array_rand随机值

时间:2013-08-04 19:15:05

标签: php arrays random

我需要使用php函数* array_rand *获取随机值。

$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";

如何从中获得价值?就像$input[$rand_keys];

一样

提前致谢。

4 个答案:

答案 0 :(得分:1)

我还没有看到内置方式。我倾向于这样做:

$rand_values = array_map(
    function($key) use ($input) { return $input[$key]; },
    $rand_keys
);

但那是因为我彻底厌恶重复自己。 :P

答案 1 :(得分:1)

有很多方法可以做到这一点,包括简单的循环......这可能是最紧凑的单行程序:

$randValues = array_intersect_key($input, array_flip(array_rand($input, 2)));

答案 2 :(得分:0)

您正确使用它。 array_rand为数组的随机条目返回一组键。但是,在您的情况下,如果您想以随机方式选择所有条目,您应该使用:

$rand_keys = array_rand($input, 5);

如果你想要一个数组,你可以$rand_values = array($input[$rand_keys[0]], $input[$rand_keys[1]], $input[$rand_keys[2]], $input[$rand_keys[3]], $input[$rand_keys[4]]);

答案 3 :(得分:0)

更改:

$rand_keys = array_rand($input, 2); 

$rand_keys = array_rand($input, 1);