我正在尝试用数组中的单词替换字符串中的单词。问题是结果重复多次。我知道 有一个问题str_replace,但我找不到任何解决此问题的方法。我试过str_replace和preg_replace。我的代码:与str_replace:$text = 'Amir and Mahdi are friends.';$text2 = str_replace(array("Amir","Mahdi"), '{Amir|Mahdi}', $text);结果: {Amir|{Amir|Mahdi}} and {Amir|Mahdi} are friends.与preg_replace:$text = 'Amir and Mahdi are friends.';$text2 = preg_replace(array("/Amir/","/Mahdi/"), '{Amir|Mahdi}', $text);结果: {Amir|{Amir|Mahdi}} and {Amir|Mahdi} are friends.我想要这个结果: {Amir|Mahdi} and {Amir|Mahdi} are friends.
1 回答
倚天杖
TA贡献1828条经验 获得超3个赞
使用替换模式作为数组,它首先转换{Amir|Mahdi} and Mahdi are friends.,再次对于数组的第二个索引,Mahdi它同时转换两者Mahdi。这就是为什么我建议您在模式而不是数组中使用|( OR ) 条件。
$text = 'Amir and Mahdi are friends.';
$text2 = preg_replace("/Amir|Mahdi/", '{Amir|Mahdi}', $text);
echo $text2;
工作演示。
- 1 回答
- 0 关注
- 215 浏览
添加回答
举报
0/150
提交
取消