2015-11-03 56 views
1

一個鍵值對,據我知道array_rand()只能從這樣的數組搶radnom陣列:一種更好的方式隨機選擇從一個數組在PHP

$array = array('apple', 'orange', 'banana'); 
$two_random_items = array_rand($array , 2); // outputs i.e. orange and banana 

但我怎麼能搶2隨機項目,但與鍵值數組?喜歡這個?

​​

這可能不是正確的方法,它是很多的代碼。

我有一個大數組,這只是一個例子,我需要從父數組中隨機獲取1000+或更多的項目,並將它們放入一個新數組中,可以重置鍵,這並不重要。價值部分必須保持不變,當然。

有沒有更好的方法來實現這個目標?

+0

@KA_lin可以在發佈一個更明確的答案,tahnks –

+0

對不起,沒有閱讀直到結束。 –

+0

從數據庫使用rand,還是僅在內存中需要? – Laurentiu

回答

2

只是洗牌和切片2:

shuffle($array); 
$rand_values = array_slice($array, 0, 2); 
0

首先,這條線:$rand_values[] .= $array[$key];是錯誤的。 .=運算符是加入字符串,爲該數組的末尾添加一個值,您只需要$rand_values[] = $array[$key];

如果您不關心按鍵,只需使用array_values函數「轉儲」按鍵。

$array = array('a' => 'orange', 'c' => 'banana', 'b' => 'peach'); 
$two_random_items = array_rand(array_values($array) , 2); 

array_values將剝離下來的鍵,並且將返回一個數組與值(各鍵將變爲0,1,2 ...)如果可能的話

相關問題