2009-02-11 61 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的詳細說明。