$search = array('{user}', '{site}');
$replace = array('Qiao', 'stackoverflow');
$subject = 'Hello {user}, welcome to {site}.';
echo str_replace ($search, $replace, $subject);
結果在Hello Qiao, welcome to stackoverflow.
。
$array_from_to = array (
'from1' => 'to1';
'from2' => 'to2';
);
這不是一個二維數組,它是一個關聯數組。
擴展在第一個例子,我們的$搜索作爲數組的鍵和$更換,因爲它的價值,代碼是這樣的。
$searchAndReplace = array(
'{user}' => 'Qiao',
'{site}' => 'stackoverflow'
);
$search = array_keys($searchAndReplace);
$replace = array_value($searchAndReplace);
# Our subject is the same as our first example.
echo str_replace ($search, $replace, $subject);
結果在Hello Qiao, welcome to stackoverflow.
。
是的,我的不好。改變了它 – Qiao 2010-03-08 04:37:51
它不是說明問題的完美解決方案(原因長度應該是相同的),但它是在我的情況理想。速度很快。 – Qiao 2010-03-08 04:48:39
'strtr'可以正常使用與搜索值長度不同的替換值。它和'str_replace'的區別在於'strtr'只會做一次翻譯(最長的時候會先匹配),這會更快(但結果不同)。例如,['ab'=>'c','c'=>'d']會將'ab'翻譯爲'c',而使用str_replace時,它將變成'd'。 – Matthew 2010-03-08 04:54:15