搜索字符串用数组的值替换单词

Abd*_*lma 0 php arrays string

我们的想法是在字符串中搜索某些单词,并根据特定的数组将其更改为其他单词.让我告诉你我的意思.

$string = "hello buddy, I'm your friend or maybe a fellow";      
Run Code Online (Sandbox Code Playgroud)

让我们说friends是一个发誓的话.我想把这个词改成我想要的.所以我做了这个:

$swears = array(
"friend" => "fri**d",
"buddy"  => "bu**y",
"fellow" => "fe**ow"
);
Run Code Online (Sandbox Code Playgroud)

我想根据数组的键搜索字符串,并用它的值替换它.我搜索网络所有我得到的是根据数组键替换数组中的值.所以在尝试后我想出了这个:

$string = "hello buddy, I'm your friend or maybe a fellow";  

$swears = array(
"friend" => "fri**d",
"buddy"  => "bu**y",
"fellow" => "fe**ow"
);

$foreach  = $string; 
foreach($swears as $bad => $good){
$foreach       = str_replace($bad,$good,$foreach);
$filtered =  $foreach;
 }
echo $filtered;
Run Code Online (Sandbox Code Playgroud)

我知道它有效,但有一种简单的方法我觉得我复杂了整个事情.如果我很好,是否有可能导致问题,如果我有大字符串,或需要时间来处理它.

Bli*_*itZ 9

str_replace可能提供array搜索词和替换词array:

<?php
$string = "hello buddy, I'm your friend or maybe a fellow";

$swears = array(
    "friend" => "fri**d",
    "buddy"  => "bu**y",
    "fellow" => "fe**ow"
);

echo str_replace(array_keys($swears), array_values($swears), $string);
?>
Run Code Online (Sandbox Code Playgroud)

显示:

hello bu**y, I'm your fri**d or maybe a fe**ow
Run Code Online (Sandbox Code Playgroud)