我在PHP中有一個關聯數組,並且希望從中選擇一個隨機的鍵/值對。這是我到目前爲止:從PHP關聯數組中選擇一個隨機元素
初始化。
$locations = array();
遍歷一個SQL查詢,並添加鍵/纈氨酸對:
array_push($locations, "'$location_id' => '$location_name'");
後來,我選擇陣列的隨機指數:
$rand = array_rand($locations);
蘭特只是一個數字。所以位置[$蘭特]給了我類似的東西:
'1' => 'Location 1'
好,一個assoc數組元素。在這一點上,我不知道這ASSOC陣的鑰匙,所以我嘗試了以下幾件事:這3次工作
foreach($locations[$rand] as $loc_id => $location_name) {
echo "$key : $value<br/>\n";
}
$loc_id, $location_name = each($locations[$rand]);
$location_name = $locations[key($rand)];
無。他們都拋出像「通過變量不是數組」的錯誤。
我確定有一些簡單的1班輪可以從數組中抽取一個隨機的鍵/值對。或者我的語法關閉。我真的很感激幫助。
你的問題是'array_push($ locations,''$ location_id'=>'$ location_name'「) ;'。代之以:'$ locations [$ location_id] = $ location_name;'。然後'array_rand($ location)'將返回一個隨機的'$ location_id';你可以用'$ name = $ locations [$ location_id]'來獲取名字。 – arnaud576875
你們都是正確的,當然 - 我只是選擇了這一個BC我最好的工作與示例代碼。是的,我非常尷尬的推動不正確。我在Perl中編寫了一噸(w哈希),所以我應該知道更好!謝謝! – Jeff
不錯,你救了我的一天 – RezaSh