Как разбить массив ссылок php на блоки по первой букве заголовка ссылки?
<?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;
}