Выбор случайного элемента из ассоциативного массива PHP

У меня есть ассоциативный массив в PHP, и я хочу выбрать из него случайную пару ключ / значение. Вот что у меня есть на данный момент:

Initialize.

$locations = array();

Выполняет цикл SQL-запроса и добавляет пары ключ / значение:

array_push($locations, "'$location_id' => '$location_name'");

Позже я выбираю случайный индекс массива:

$rand = array_rand($locations);

Rand - это просто число . Итак, 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)];

Ни одна из этих трех попыток не сработала. Все они выдают ошибки типа «Переданная переменная не является массивом».

Я уверен, что есть какой-то простой лайнер, который может извлечь случайную пару ключ / значение из массива. Или мой синтаксис отключен. Буду очень признателен за помощь.

17
задан Peter O. 7 September 2017 в 12:19
поделиться