Как заменить слова в строке на массив [duplicate]

0

Мое дело:

$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A and B';

Я хочу изменить $subject на новую строку: B and C

Я пытаюсь использовать str_replace($search, $replace, $subject) но он возвращает F and F

Как я могу это сделать? Большое спасибо!

Теги:

1 ответ

1
Лучший ответ

Использовать strtr:

$result = strtr($subject, array_combine($search, $replace));

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

(Вы должны понимать, что для каждого элемента в массиве поиска str_replace обрабатывает всю строку.)

Обратите внимание, что для вашего конкретного примера вы можете написать:

$result = strtr($subject, 'ABCDE', 'BCDEF');

strtr может использоваться двумя разными способами.

  • 0
    Я понял! я никогда раньше не использовал strtr . Спасибо вам большое!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню