日期:2014-05-17  浏览次数:20546 次

字符串替换,如何能做到双向替换?
最近要做一个同义词替换的功能,因为是同义词,所以最好是能双向替换,比如“拜会”和“拜见”,在字符串中出现任何一个都要能替换成另一个。

通常用str_replace只能单向替换,不能实现双向替换。

尝试了一下把同义词做成数组再用str_replace替换,结果却不正确。

$find = array("拜会","拜见");
$replace = array("拜见","拜会");
$arr = array("拜会和拜见");
str_replace($find,$replace,$arr);

结果是:拜会和拜会。

问题是怎么样才能使最后的替换结果是“拜见和拜会”?


------解决方案--------------------
改动一下
PHP code

$find = array("拜会","拜见");
$replace = array("拜见","拜会");
$str = "拜会和拜见";
echo    strtr($str, array_combine($find, $replace));