Вывод страны один раз в php

191
30 июля 2021, 00:40
   SELECT DISTINCT country.country_ru AS country__country_ru,
                   city.city_ru       AS city__city_ru
     FROM tour
LEFT JOIN city 
       ON tour.city = city.id
LEFT JOIN country 
       ON city.country = country.id

так вот как выводит на php чтобы один раз повтарялся страна и города в были группы страны

<select>
 <optgroup label="Азербайджан">
  <option>Баку</option>
  <option>Шуша</option>
 </optgroup>
 <optgroup label="Турция">
  <option>Анталья</option>
 </optgroup>
</select>
Answer 1

$arr = [
    [
        'country__country_ru' => 'Азербайджан',
        'city__city_ru' => 'Баку',
    ],
    [
        'country__country_ru' => 'Турция',
        'city__city_ru' => 'Анталья',
    ],
    [
        'country__country_ru' => 'Азербайджан',
        'city__city_ru' => 'Шуша',
    ],
];
$prep = [];
foreach ($arr as $row)
{
    if (! isset($prep[ $row['country__country_ru'] ])) {
        $prep[ $row['country__country_ru'] ] = [];
    }
    $prep[ $row['country__country_ru'] ] []= $row['city__city_ru'];
}
$html = "<select>\n";
foreach ($prep as $country => $cities)
{
    $html .= "  <optgroup label=\"$country\">\n";
    foreach ($cities as $city)
    {
        $html .= "    <option>$city</option>\n";
    }
    $html .= "  </optgroup>\n";
}
$html .= "</select>\n";
echo $html;
READ ALSO
Пытаюсь реализовать каталог n-вложенности на PHP

Пытаюсь реализовать каталог n-вложенности на PHP

В БД Postgresql есть таблица каталог

133
Удаленный доступ к объектам в Android

Удаленный доступ к объектам в Android

Есть 2 приложенияОба приложения имеют определение интерфейса ICollback

148
Enter button Java

Enter button Java

Существует ли в Java регулярное выражение нажатие клавиши Enter как в python /r? Enter нужно отправить в консоль ssh, после выполнения команды

119
Можно ли использовать рекурсию?

Можно ли использовать рекурсию?

Есть задачаМетод принимает строку (длинную) и должен распечатать ее построчно так, чтобы длина каждой выводимой строки была не больше 13 символов...

401