我有串狀如何用給定數組替換多個模式?
$text = "Hello :name its your :num_visit";
和陣列
$attr = [ ":name" => "Danny", ":num_visit" => 6];
我要替換像$文字圖案:名稱,:在陣列的給定值num_visit(陣列具有相同的鍵名)。
這是可能的PHP?
我有串狀如何用給定數組替換多個模式?
$text = "Hello :name its your :num_visit";
和陣列
$attr = [ ":name" => "Danny", ":num_visit" => 6];
我要替換像$文字圖案:名稱,:在陣列的給定值num_visit(陣列具有相同的鍵名)。
這是可能的PHP?
只需使用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
其他解決方案越簡單越好。謝謝 – user3720709
@ user3720709不客氣。 – Rizier123
@ user3720709:主要優勢在於,當str_replace解析每個鍵/值對的字符串時,strtr只爲所有鍵/值對解析字符串一次。 –
使用str_replace()
來代替那些。傳key
S代表search
和value
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()
。
$text = "Hello :name its your :num_visit";
str_replace(array(':name',':num_visit'), array('Danny','6'), $text);
:name
將與Danny
更換和:num_visit
將6
取代。
你有沒有嘗試過或做過一些研究? – Rizier123