用数组替换函数的单词

Replace word of a function with array

我需要删除一个句子中的一些词,但我希望被删除的词完全匹配...

这是我的代码:

<?php
function Clean ($text) {
 $array = array(
  'goo' => '',
  'guu' => '',
 );
 return strtr($text, $array);
}

$OldText = "goo guu mygoo myguu gooyou guuyou";

$NewText = Clean($OldText);

echo $NewText;
?>

我想要这个: mygoo myguu gooyou guuyou

PHP returns:我我你你

有什么想法吗?非常感谢您!

您可以将 preg_replace 与单词边界一起使用,您不会得到部分匹配:

echo preg_replace('/\s*\b(goo|guu)\b\s*/', '', $OldText);

演示:https://eval.in/731588

这是我的完整解决方案,希望有人能为您服务!

<?php
function Clean ($text) {
 $array = array(
  '/\s*\b(goo)\b\s*/',
  '/\s*\b(guu)\b\s*/',
 );
 return preg_replace($array,'', $text);
}

$OldText = "goo guu mygoo myguu gooyou guuyou";

echo Clean($OldText);
?>