@NaM_44

Как сделать задание без функций замены?

Функция транслит, дали задание написать её без встроенных функций замены.
Помогите пожалуйста.
function translit($text) {
    $ru = ['а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ь','ы','ъ','э','ю','я'];
    $en = ['a','b','v','g','d','e','jo','zh','z','i','j','k','l','m','n','o','p','r','s','t','u','f','h','cz','ch','sh','shh','`','y','``','e`','yu','ya'];
    
    $text = mb_str_split($text);
    $a = '  ';

    foreach($text as $letters) {
        if($letters == mb_strtolower($letters)) {
            $a .= str_replace($ru, $en, $letters);
        } elseif($letters == mb_strtoupper($letters)) {
            $letters = mb_strtolower($letters);
            $letters1 = str_replace($ru, $en, $letters);
            $letters1 = mb_strtoupper($letters1);
            $a .= $letters1;
        }
    } 
    return $a;
}
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 1
VladimirAndreev
@VladimirAndreev
php web dev
Дальше последовательно заменяешь каждый элемент массива $text на значение из словаря

<?php
$directonary = array_combine($ru, $en) ;
array_map(
fn(string $letter): string => $directonary[$letter] ?? $letter, 
mb_str_split($text)
) ;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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