Php 多字符串替换

Php 多字符串替换,php,Php,我需要用它的关联文本替换多个文本 示例:我有如下字符串:“苹果是一种很棒的水果” 现在我需要将“apple”替换为“stackoverflow”,将“水果”替换为“网站” 我知道我可以使用str\u replace,但还有其他方法吗str_replace在我的情况下会很慢,因为我至少需要替换5到6个单词 谢谢你的帮助 <?php $a = array('cheese','milk'); $b = array('old cow','udder'); $str = 'I like chees

我需要用它的关联文本替换多个文本

示例:我有如下字符串:
“苹果是一种很棒的水果”

现在我需要将
“apple”
替换为
“stackoverflow”
,将
“水果”
替换为
“网站”

我知道我可以使用
str\u replace
,但还有其他方法吗
str_replace
在我的情况下会很慢,因为我至少需要替换5到6个单词

谢谢你的帮助

<?php

$a = array('cheese','milk');
$b = array('old cow','udder');
$str = 'I like cheese and milk';
echo str_replace($a,$b,$str); // echos "I like old cow and udder"

编辑:我看到dnl编辑了这个问题,并强调str_替换太慢的事实。在我对这个问题的解释中,这是因为用户不知道他们会在str_replace中使用数组。

出于您的目的
str_replace
接缝已经是最快的解决方案

str\u replace
strstr


来源:

如果你知道所有的单词顺序,并且还替换了单词,那么使用下面的技巧

$trans = array( "apple" => "stackoverflow", "fruit" => "website");
echo strtr("apple is a great fruit", $trans); // stackoverflow is a great website

strtr在使用较长字符串时比str\u replace慢(来源:)。使用str\u replace()替换5或6个单词并不慢,除非在100MB的文件中执行此操作。。。当然,这将是PHP中最快的选项itself@diEcho-他说他不想使用最快和最合适的PHP函数,因为在他的情况下它会很慢-为什么他的情况应该很慢,我不知道,他还没有真正解释为什么(替换5个或6个单词不是一种解释,除非他试图发出5个或6个单独的str_replace()语句,而不是1个数组)据我所知,
$start=$replace=$array();
中的
array()
(没有$)应该是
$start=$replace=$array()
$trans = array( "apple" => "stackoverflow", "fruit" => "website");
echo strtr("apple is a great fruit", $trans); // stackoverflow is a great website