1

我需要使用 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

4 回答 4

2

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

$randValues = array_intersect_key($input, array_flip(array_rand($input, 2)));
于 2013-08-04T20:35:33.407 回答
1

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

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

但那是因为我非常讨厌重复自己。:P

于 2013-08-04T19:29:35.240 回答
0

更改: $rand_keys = array_rand($input, 2); 到 $rand_keys = array_rand($input, 1);

于 2014-12-19T18:55:09.620 回答
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]]);

于 2013-08-04T19:23:03.627 回答