2015-08-24 2 views
0

strtr заменяет на неожиданный случай. Пожалуйста, взгляните на мой код.strtr заменяет неожиданным образом

$stringX = "Do you remember me?"; 

strtr($stringX, array("you" => "me", "me" => "you")); 

Ожидаемый результат: Я помню вас.

Фактический результат: Я вас reyoumber.

Как получить ожидаемый выход?

+0

посмотрите на этот вопрос и ответ: http://stackoverflow.com/questions/3426265/php-string-replace-match-whole-word – Jeff

+0

@Jeff И это снимает всю суть замены меня и вы в то же время. – jessica

+0

@Narendra Sisodia Почему вы удалили свой ответ? – Rizier123

ответ

0

Попробуйте это:

$stringX = "Do you remember me?"; 

strtr($stringX, array("you" => "me", " me" => " you")); 

Обратите внимание на пробел перед me !!!

ПРИМЕЧАНИЕ: Это будет работать только в этом конкретном случае и может вызвать неожиданный выход для других строк!

+1

Ну, просто имейте в виду, что это решение очень специфично и будет работать только с этим делом. Как только добавится другое слово, которое начинается с «меня», у него снова будет аналогичная проблема. – Katai

+1

Это не будет, если помнить член, но если вы делаете оба пространства спереди и сзади, и что, если это я? без пробела? – jessica