Мое дело:
$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
Как я могу это сделать? Большое спасибо!
Использовать strtr
:
$result = strtr($subject, array_combine($search, $replace));
в отличие от str_replace
, strtr
выполняет строку за один выстрел и избегает циклических замен.
(Вы должны понимать, что для каждого элемента в массиве поиска str_replace
обрабатывает всю строку.)
Обратите внимание, что для вашего конкретного примера вы можете написать:
$result = strtr($subject, 'ABCDE', 'BCDEF');
strtr
может использоваться двумя разными способами.
strtr
. Спасибо вам большое!