У меня есть ассоциативный массив в PHP и вы хотите выбрать из него случайную пару ключ/значение. Вот что я до сих пор:
Initialize.
$locations = array();
Цикл через SQL-запрос и добавляет пары ключ/вал:
array_push($locations, "'$location_id' => '$location_name'");
Впоследствии я выбираю случайный индекс массива:
$rand = array_rand($locations);
Rand - это просто число. Поэтому места [$ rand] дают мне что-то вроде:
'1' => 'Location 1'
ОК отличный, элемент-элемент-ассоциированный элемент. На этом этапе я не знаю ключа этого массива-помощника, поэтому я пробовал следующие вещи:
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 лайнер, который может вырвать случайную пару ключ/значение из массива. Или мой синтаксис выключен. Я очень благодарен за помощь.