Для устранения ошибки "Notice: Undefined variable: last_char" необходимо убедиться, что переменная `$last_char` инициализируется перед первым её использованием. В вашем коде есть неявное использование переменной, и если её значение не было установлено ранее, возникнет ошибка.
Вот пример кода, который сортирует список слов по алфавиту и отображает первую букву каждого слова, предотвращая ошибку с неопределённой переменной:
```php
<?php
// Исходный массив слов
$words = array("яблоко", "груша", "апельсин", "банан", "вишня");
// Сортируем массив слов по алфавиту
sort($words);
// Переменная для хранения последней буквы
$last_char = '';
// Проходим по отсортированному массиву
foreach ($words as $word) {
// Получаем первую букву текущего слова
$first_char = mb_substr($word, 0, 1);
// Проверяем, изменяется ли первая буква
if ($first_char !== $last_char) {
// Выводим первую букву
echo $first_char . "\n";
// Обновляем переменную для следующей итерации
$last_char = $first_char;
}
// Дополнительно можно вывести само слово, если нужно
echo $word . "\n";
}
?>
```
### Объяснение кода:
1. **Инициализация переменной `$last_char`** — перед циклом `foreach` мы устанавливаем начальное значение переменной `$last_char` равным пустой строке `''`. Это позволяет избежать ситуации, когда переменная не определена.
2. **Сортировка массива** — функция `sort()` упорядочивает массив `$words` по алфавиту.
3. **Цикл `foreach`** — перебираем каждое слово в отсортированном массиве:
- Получаем первую букву с помощью функции `mb_substr()`, которая учитывает многобайтовые символы.
- Сравниваем первую букву с последней буквой, сохранённой в `$last_char`. Если они различаются, выводим первую букву и обновляем `$last_char`.
Этот код теперь работает корректно и не вызывает предупреждений об неопределённых переменных.