У меня <ul>
генерируемый из таблицы MySQL БД с этим PHP скрипт:PHP - генерации HTML-элемент для каждого уникального набора значений в массиве
$result = mysqli_query($con,"SELECT * FROM city_list ORDER BY city_state");
echo "<ul class=\"chapter-list\">";
while($row = mysqli_fetch_array($result))
{
echo "<li data-state=\"" . $row['city_state'] . "\">" . $row['city_name'] . "</li>";
}
echo "</ul>";
Выход выглядит следующим образом:
<ul>
<li data-state="alabama">Birmingham</li>
<li data-state="alabama">Bear Creek</li>
<li data-state="alabama">Belk</li>
<li data-state="kansas">Topeka</li>
<li data-state="kansas">Olathe</li>
</ul>
Я хотел бы создать заголовок как элемент <li>
перед каждой группой определенного значения data-state
. Таким образом, я хотел бы закончить с разметкой, как это:
<ul>
<li>Alabama</li>
<li data-state="alabama">Birmingham</li>
<li data-state="alabama">Bear Creek</li>
<li data-state="alabama">Belk</li>
<li>Kansas</li>
<li data-state="kansas">Topeka</li>
<li data-state="kansas">Olathe</li>
</ul>
Есть ли функция массив PHP, чтобы сделать что-то вроде этого, или я, возможно, придется прибегнуть к чему-то с JS? Я прошел через PHP-документы, но пока не нашел решения. Я новичок в PHP, поэтому любое руководство ценится.
Изменить запрос 'SELECT DISTINCT * FROM city_list ORDER BY city_state' , вероятно? –