2013-07-12 44 views
1

試圖寫一個函數來糾正一組anacroyms的情況下更換一組字符串的,但不能看到如何做到這一點更具邏輯..str_replace函數 - 與另一組

我有這樣的時刻

$str = str_ireplace(" worda ", " Worda ", $str); 
$str = str_ireplace(" wordb ", " woRrdb ", $str); 

等等,其長長的名單!

有沒有一種方法可以讓一組字符串替換一組替換?又名:

worda = Worda 
wordb = woRdb 

我見過使用的preg_replace過其他的例子,但不能看到的方式使用該功能既可以做到這一點。

回答

1

你可以給數組作爲str_ireplace參數的單詞列表,

$str = str_ireplace(array("worda","wordb"),array("Worda","woRrdb"),$str); 

更精美,

$searchWords = array("worda","wordb"); 
$replaceWords = array("Worda","woRrdb"); 
$str = str_ireplace($searchWords,$replaceWords,$str); 
0

嗯,看起來你不想糾正寫函數str_replace多次。 所以這裏是它的一個解決方案:

你可以把你的數據在這樣的數組:

$arr = array("worda" => "Worda", "wordb" => "woRdb"); 

希望這將是很容易爲你做。

然後使用foreach循環吧:

foreach($arr as $key => $value){ 
    $str = str_ireplace($key, $value, $str); 
} 
0

下面是使用關聯數組的方式,你可以做到這一點:

$words = array('worda' => 'Worda', 'wordb' => 'woRdb'); 
$str = str_ireplace(array_keys($words), array_values($words), $str);