PHP用数组中的值替换字符串

我正在尝试用数组中的单词替换字符串中的单词。问题是结果重复多次。我知道 有一个问题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.


LEATH
浏览 216回答 1
1回答

倚天杖

使用替换模式作为数组,它首先转换{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;工作演示。
打开App,查看更多内容
随时随地看视频慕课网APP