заменить 2 слова в строке с переполнением стека

Как я могу сделать это заменить в php, у меня есть первый заголовок, который выглядит так:

Цена От пример к пример 3,

и я хочу вывести тот же заголовок, но изменить так:

Цена к пример От пример 3,

Я использую код ниже, но не меняю второе слово. Я получаю это:

Цена к пример к пример 3,

echo str_replace(array("From","To"), array("To","From"), $title);

1

Решение

Ты хочешь strtr:

$newTitle = strtr($title, array("From"=>"To", "To"=>"From"));
2

Другие решения

Попробуй это.

$phrase  = "the price From example To example is 3";
$texta = array("From", "To");
$textb   = array("To", "From");

$newphrase = str_replace($texta, $textb, $phrase);
0

Таким образом, проблема в том, что str_replace выполнит замену по порядку с вашим массивом, и независимо от того, в каком порядке вы их разместите, он всегда будет переопределять первую замену.

Первый шаг — вы говорите str_replace найтиОт«и заменить на»к«. Делая вашу фразу на этом этапе:

цена из примера к примеру 3

который становится

цена к примеру к примеру 3

Затем str_replaces к следующему элементу в вашем массиве, который должен искать «Кому» и заменить его на «От». На данный момент вы, вероятно, можете увидеть проблему.


Используйте ответ ChrisMoll.

0
По вопросам рекламы [email protected]