2017-06-05 123 views
0

如何从数组中随机获取某些内容例如,我有这个数组我想随机获取其中的一行如何使用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多

请帮忙,谢谢

+0

你想要它返回什么? –

+0

你可以使用'echo $ rand_keys [0];' – xanoetux

+0

获得密钥,我希望我的答案是你想要的,但对于未来,在你的问题中,你应该精确地预期什么是预期输出,所以我们可以更快,更好地回答你。 –

回答

0

那么,你正在得到你所要求的 - 值是属于随机选择的密钥。 要获得key => value对执行:

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

当然你也可以格式化输出,但是你会喜欢。

+0

这工作非常感谢你 –

1

你可以随机化数组顺序并获取第一个元素。代码看起来像这样:

shuffle($quizes); 
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";