多个字符串替换

I-M*_*-JM 7 php

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

示例:我有类似的字符串: "apple is a great fruit"

现在,我需要更换"apple""stackoverflow",并"fruit""website"

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

帮助赞赏.

Pri*_*ner 16

<?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"
Run Code Online (Sandbox Code Playgroud)

或者,如果您不喜欢这样(担心错过匹配的数组值),那么您可以这样做:

$start = $replace = $array();
$str = "I like old cow and udder"

$start[] = 'cheese';
$replace[] = 'old cow';

$start[] = 'milk';
$replace[] = 'udder';
echo str_replace($start,$replace,$str); // echos "I like old cow and udder"
Run Code Online (Sandbox Code Playgroud)

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

  • @diEcho - 他说他不想使用最快和最合适的PHP函数,因为它__在他的情况下会很慢_为什么他的情况应该很慢,我不知道,他并没有真正解释为什么(替换5或6个单词不是解释,除非他试图发出5或6个单独的str_replace()语句而不是1个数组) (3认同)