Как вывести из массива словарь, перед этим выводя первую букву следующих слов?

222
17 февраля 2019, 06:40

Есть массив на латинице, содержащий слова. Массив отсортирован по алфавиту. Как вывести его в виде:

A
Слово на А1
Слово на А1
B
Слово на B1

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

Answer 1

Собрать массив, где ключами будут первые буквы слов, а значениями - группы слов:

$words = [
    'Слово',
    'Сахар',
    'Алфавит',
    'Аммиак',
    'Спирт',
    'Что-то ещё'
];
sort($words);
$new_arr = [];
foreach ($words as $word) {
    $char = preg_split('~~u', $word, -1, PREG_SPLIT_NO_EMPTY)[0];
    $new_arr[$char][] = $word;
}
var_dump($new_arr);

Результат:

array (size=3)
  'А' => 
    array (size=2)
      0 => string 'Алфавит' (length=14)
      1 => string 'Аммиак' (length=12)
  'С' => 
    array (size=3)
      0 => string 'Сахар' (length=10)
      1 => string 'Слово' (length=10)
      2 => string 'Спирт' (length=10)
  'Ч' => 
    array (size=1)
      0 => string 'Что-то ещё' (length=18)

PS: Этот пример работает и с латиницей.

Распечатать получившийся массив можно так:

$view = '<pre>';
foreach ($new_arr as $letter => $word_list) {
    $view .= "$letter<br>";
    foreach ($word_list as $word) {
        $view .= "\t$word<br>";
    }
}
$view .= '</pre>';
echo $view;

В результате:

А
    Алфавит
    Аммиак
С
    Сахар
    Слово
    Спирт
Ч
    Что-то ещё
READ ALSO
Как получить значение у select в customizer (wordpress)

Как получить значение у select в customizer (wordpress)

Всем привет, вообщем я создал в кастомайзере секцию и в нее добавил select, выглядит это таким образом

196
Разделение выводимого списка слов

Разделение выводимого списка слов

Есть список слов, который выводится из массива на страницу в виде

201
Ошибка ввода информации в базу данных

Ошибка ввода информации в базу данных

При попытки ввнести информацию в базу данных, ввод не проходитВыдает ошибку

191
Вопрос про Highcharts

Вопрос про Highcharts

Пытаюсь построить график, беру вот такой код из примера:

235