Как заменять в строке имеющийся patern на значения которые уже известны?

Имеется строка:

$str = "Виталий имеет {{ e1 }} яблок но он отдал {{ a1 }} в итоге, у него осталось {{ sum1 }}";

//возможные значения e и а хранятся в массивах/массиве:

$e = [
     '{{ e1 }}' => '3',
     '{{ a1 }}' => '1',
];

foreach($e as $key => $value){
      $res = strtr($res,$e[$key],$value);
}


с помощью функции strtr ничего не получается, он почему то не хочет заменять значения, как эту задачу выполнить можно?
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
$str = "Виталий имеет {{ e1 }} яблок но он отдал {{ a1 }} в итоге, у него осталось {{ sum1 }}";

$e = [
     '{{ e1 }}' => '3',
     '{{ a1 }}' => '1',
];

$res = strtr($str, $e);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
BuriK666
@BuriK666
Компьютерный псих
Вы меняете $res, а строка в $str...

str_replace(array_keys($e), $e, $str);
Ответ написан
Комментировать
@Arik
$e[$key]
это вы получили опять значение, т.е. $e[$key] === $value

обратите внимание, что можно просто передать ассоц массив и не надо бегать по массиву
php.net/manual/ru/function.strtr.php
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
08 мая 2024, в 17:12
50000 руб./за проект
08 мая 2024, в 16:40
70000 руб./за проект
08 мая 2024, в 16:29
500 руб./за проект