我的情况:
$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
。
我该怎么做?非常感谢!
答案 0 :(得分:1)
使用strtr
:
$result = strtr($subject, array_combine($search, $replace));
与str_replace
不同,strtr
一次执行字符串并避免循环替换。
(您必须明白,对于搜索数组中的每个项目,str_replace
会处理整个字符串。)
请注意,对于您的具体示例,您可以写:
$result = strtr($subject, 'ABCDE', 'BCDEF');
strtr
可以两种不同的方式使用。