Не могу понять почему скрипт пропускает букву "с". PHP

нужна помощь, не понимаю где делаю ошибку:

введите сюда код

<?php
    
    $string = "";`введите сюда код`
    $value="a1bcd"; // входная строка.(efg!h)- c данным вариантом работает 
    $str_rev= "dcba"; // перевернутая строка. Только буквы! (hgfe)- c данным вариантом работает 
    //необходимо перевернуть строку задом на перёд но что цифры или символы остались на своих местах.
    
    
    for ($i = 0; $i < strlen($value); $i++) {
      if (empty($str_rev[$i]))  {
            $string .= $str_rev[($i-1)];
      }
            elseif (preg_match('/[a-zA-Z]/u', $value[$i])) {
                          $string .= $str_rev[$i];
                    } else {
                          $string .= $value[$i];
                    } 
    }
    echo $string;

Ответы (1 шт):

Автор решения: Александр Сычёв

Возможно нужно так ?! И заодно немного проще будет чем у Вас

<?php


function costylMain($strMain){
$out = "";
    for ($i = mb_strlen($strMain)-1; $i>=0; $i--) {
        
        if(preg_match('/[a-z]/i', $strMain[$i])) {
            $out .= $strMain[$i];
        }
    }

return $out;

}

echo costylMain("a1bcd"); 
→ Ссылка