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

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

Задана строка:
$str = '12-345-67-89-10';
Нужно поменять только первые 2 дефиса с начала строки или последние два с конца.
Функция str_replace заменяет все вхождения.
Чтобы заменить три дефиса сначала я прописал такой код:
$arr = str_split($str);
$new_arr = [];
foreach ($arr as $key => $value) {
if($value == '-' && $key <=10){
$value = '!';
}
$new_arr[] = $value;
}
$str = implode('', $new_arr);
Только сдается мне, что он не универсален.
А как подсчитать количество вхождений с конца?
Ну с помощью функцией subst_count я узнаю сколько дефисов в строке, а вот, что с этим дальше делать, мне не совсем понятно?
Проясните мне пожалуйста...
Заранее благодарен.
  • Вопрос задан
  • 247 просмотров
Решения вопроса 2
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
А почему бы не собрать строку в массив с помощью explode? Или регуляркой решить?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы