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