2015-05-13 9 views
2

我有串狀如何用給定數組替換多個模式?

$text = "Hello :name its your :num_visit"; 

和陣列

$attr = [ ":name" => "Danny", ":num_visit" => 6]; 

我要替換像$文字圖案:名稱,:在陣列的給定值num_visit(陣列具有相同的鍵名)。

這是可能的PHP?

+1

你有沒有嘗試過或做過一些研究? – Rizier123

回答

2

只需使用strtr()並通過搜索/替換數組作爲第二個參數,.e.g

<?php 

    $text = "Hello :name its your :num_visit"; 
    $attr = [":name" => "Danny", ":num_visit" => 6]; 
    echo strtr($text, $attr); 

?> 

輸出:

Hello Danny its your 6 
+0

其他解決方案越簡單越好。謝謝 – user3720709

+0

@ user3720709不客氣。 – Rizier123

+1

@ user3720709:主要優勢在於,當str_replace解析每個鍵/值對的字符串時,strtr只爲所有鍵/值對解析字符串一次。 –

1

使用str_replace()來代替那些。傳key S代表searchvalue S代表replace -

$text = "Hello :name its your :num_visit"; 
$attr = [ ":name" => "Danny", ":num_visit" => 6]; 

echo str_replace(array_keys($attr), $attr, $text); 

輸出

您好丹尼,是你的6

str_replace()

Working code

0

可以使用str_replace()

$text = "Hello :name its your :num_visit"; 
str_replace(array(':name',':num_visit'), array('Danny','6'), $text); 

:name將與Danny更換和:num_visit6取代。