Заменить слово функции на массив

Мне нужно удалить некоторые слова в предложении, но я хочу, чтобы слово, которое будет удалено, полностью соответствовало …

Это мой код:

<?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 возвращает: мой мой ты ты

Есть идеи? Заранее большое спасибо!

1

Решение

Ты можешь использовать preg_replace с границами слов, и вы не получите частичных совпадений:

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

Демо-версия: https://eval.in/731588

2

Другие решения

Это мое полное решение, я надеюсь, что кто-то еще будет служить вам!

<?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);
?>
0

По вопросам рекламы [email protected]