2009-02-11 59 views
19

是否有一个内置的PHP函数用一个数组取代一个字符串中的多个值,该数组确切地指明了什么被替换为什么?在PHP5中搜索并用多个/不同值替换多个值?

例如:

$searchreplace_array = Array('blah' => 'bleh', 'blarh' => 'blerh'); 
$string = 'blah blarh bleh bleh blarh'; 

并将所得会是: '的Bleh blerh的Bleh的Bleh blerh'。

+6

该示例文本是非常诡计的跟随。 – 2013-03-01 03:22:25

+0

好问题:D – ncomputers 2017-05-23 20:17:58

回答

62

您正在寻找str_replace()

$string = 'blah blarh bleh bleh blarh'; 
$result = str_replace(
    array('blah', 'blarh'), 
    array('bleh', 'blerh'), 
    $string 
); 

//额外的小费:

如果你被卡住的关联数组就像在你的榜样,你可以像它分解:

$searchReplaceArray = array(
    'blah' => 'bleh', 
    'blarh' => 'blerh' 
); 
$result = str_replace(
    array_keys($searchReplaceArray), 
    array_values($searchReplaceArray), 
    $string 
); 
1

str_replace()这样做。

您可以查看manual以获取更详细的解释。

0

对于你已经到了那里,只需将该数组传递到str_replace作为搜索和替换(如果您想要保留该数组,则在搜索参数上使用array_keys)。

16
$string = 'blah blarh bleh bleh blarh'; 
$trans = array("blah" => "blerh", "bleh" => "blerh"); 
$result = strtr($string,$trans); 

您可以查看manual的详细说明。