2017-06-05 125 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";