@jorshjorsh95

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

Добрый день.

есть массив вида:
1 => Ascona
2 => Asert
3 => Belfort
4 => Buddap
5 => Central park

Он уже отсортирован по алфавиту, но мне нужно разбить их по разным блокам, чтобы сделать поиск по алфавиту

Пока в голове только 1 вариант, это перебирать массивом и когда текущая 1 буква не совпадает с предыдущей, создавать новый блок с новой буквой. Есть еще варианты?

Должно быть примерно так:
A...
Ascona
Asert

B...
Belfort
Buddap

и тд
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
AlexMcArrow
@AlexMcArrow
Люблю РНР, да я такой!
Ваш вариант жизнеспособен, но его можно упростить.
$res = [];
foreach($list as $val) {
  if(!isset($res[$val[0]])) {
    $res[$val[0]] = [];
  }
  $res[$val[0]][] = $val;
}

Как результат в массиве $res будет разбиты по первым буквам весь список.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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