Как разбить массив ссылок php на блоки по первой букве заголовка ссылки?

Есть массив вида

rray
(
[0] => Array
(
[name] => Брянск
)

[1] => Array
(
[name] => Воронеж
)

[2] => Array
(
[name] => Екатеринбург
)
....

[name] - это ссылки. как можно при выводе делать разделение между городами на каждую букву?

Б
Брянск
В
Воронеж

....
  • Вопрос задан
  • 2789 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Nc_Soft
<?php
$data = [
    [
        'name' => 'Брянск'
    ],
    [
        'name' => 'Москва'
    ],
    [
        'name' => 'Бобруйск'
    ],
];

usort($data, function ($v1, $v2) {
    return strcmp($v1['name'], $v2['name']);
});

$letter = null;
foreach ($data as $v) {
    $currentLetter = mb_substr($v['name'], 0, 1, 'utf-8');
    if ($currentLetter !== $letter) {
        $letter = $currentLetter;
        echo "--- $letter ---", PHP_EOL;
    }
    echo $v['name'], PHP_EOL;
}

--- Б ---
Бобруйск
Брянск
--- М ---
Москва
Ответ написан
не совсем понятно что значит "[name] - это ссылки.".
но вообще как-то так.

$cities = array(...);
$cities_with_letters = array();
foreach ($cities as $city) {
  $letter = substr($city['name'], 0, 1);
  $cities_with_letters[$letter][] = $city;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы