PHP - 如何从数组中随机获取内容

时间:2017-06-05 21:43:41

标签: php arrays

如何从数组中随机获取一些内容,例如我有这个数组我想随机抓取其中一行,我该如何使用PHP?

 $quizes = array(
        '3-1' => '2',
        '4+4' => '8',
        '7-5' => '2',
        '4+2' => '6',
        '9-3' => '6',
        '1+2' => '3',
        '9+9' => '18',
        '3+2' => '5',
        '2*3' => '6',
        '5*3' => '15',
        '6+6' => '12',
        '3+4' => '7',
        '7-4' => '3',
        '6+2' => '8',
        '3*2' => '6',
        '7+6' => '13',
        '1+1' => '2',
        '4*4' => '16',
        '10-3' => '7'
    );

我尝试了什么

$rand_keys = array_rand($quizes, 2);
echo $quizes[$rand_keys[0]] . "\n";
echo $quizes[$rand_keys[1]] . "\n";

但这仅返回2 7,15 2,3 2等结果

请帮助谢谢

3 个答案:

答案 0 :(得分:1)

您可以随机化数组顺序并获取第一个元素。代码如下所示:

shuffle($quizes);

答案 1 :(得分:0)

嗯,你得到的正是你要求的 - 属于随机选择的键的值。 要获得key => value对执行:

echo $rand_keys[0] . " => " . $quizes[$rand_keys[0]] . "\n";

当然,您可以根据需要格式化输出。

答案 2 :(得分:0)

代码中的每个“行”实际上都是两部分:一个键及其对应的值。例如,在第一行中'3-1'是键,'2'是其值。 =>运算符表示此关系。

您使用的array_rand函数将从数组中返回一个随机密钥(或一组密钥,如果您指定第二个参数)。

$key = array_rand($quizes);    // returns a random key e.g. '3-1'

然后您可以使用该键获取相应的值

$value = $quizes[$key];        // returns the value that matches $key

有各种方法可以从那一点输出它们。如果您希望它看起来像在代码中那样,您可以使用

echo "$key => $value";