serii81
@serii81
Я люблю phр...

Как преобразовать последний символ каждого слова в строке в верхний регистр?

Есть данная строка:
$str = 'my name is boris';
Нужно преобразовать в верхний регистр последний символ каждого слова, причем сделать с помощью цикла, и без него.
Что я делаю:
1. С помощью explode() строку преобразовываю в массив.
$arr = explode(' ', $str);
2. Если использовать цикл, то можно сделать заглавным символ каждого слова с помощью substr_replace(), но для этого нужно знать этот символ, чтобы его туда вставить.
Чувствую, что все намного проще, только пока не знаю как это сделать.
  • Вопрос задан
  • 644 просмотра
Решения вопроса 1
@D3lphi
1 Способ (Посложнее, с циклом и плюшками):
$str = 'my name is boris';

$arr = explode(' ', $str);    // Разбиваем строку по пробелам в массив

foreach($arr as &$item) {
    $last = strtoupper(substr($item, -1));    // Вытаскиваем последний символ из слова и преобразуем его в верхний регистр. Если в строке есть кириллица,нужно использовать mb_strtoupper() (Далее, тоже, использовать аналоги функций из расширения mb).
    $item[strlen($item) - 1] = $last;   // Заменяем последний символ в строке, символом в верхнем регистре.
}
unset($item);

$result = implode(' ', $arr);


2 Способ (Попроще):
$str = 'my name is boris';

$reversed = strrev($str);   // Переворачиваем строку задом наперед

$result = strrev(ucwords($reversed));   // Меняем первый символ в перевернутой строке символом в верхнем регистре, переворачиваем строку.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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