2012-08-13 87 views
0

是否可以在一個字符串中多次替換一個子字符串,但使用不同的替換?我知道這可以用循環和str_replace()完成,但我發誓必須有一個更簡單的方法!多次替換一個子串而不循環? (使用一系列替換)

例子:

<?php 
// Returns '1.2.3'; 
echo str_replace('%', array(1, 2, 3), '%.%.%'); 
?> 

我真的需要開始上線一個循環,然後在同一時間更換一個比賽?這似乎是一個馬虎的做法,應該更簡單。我錯過了什麼?

+2

這可能是[sprintf()](http://php.net/manual/en/function.sprintf.php)甚至是[vsprintf()]的一份工作(http://www.php.net /manual/en/function.vsprintf.php)? – Scuzzy 2012-08-13 01:41:51

+0

是你的原始字符串文字'%'?還是僅僅是一個例子? – 2012-08-13 01:45:23

+0

sprintf或vsprintf應該變成答案 – Toote 2012-08-13 01:46:12

回答

0

正如Scuzzy在評論中推薦的那樣,vsprintf()原來是我正在尋找的。謝謝!

0

這應該使用str_ireplace(注意我)。我不確定,但它應該像這樣工作:str_ireplace(array('%', '%', '%'), array(1, 2, 3), '%.%.%')。我現在沒有辦法測試它。

+0

雖然這會起作用,但解決這個問題並不是一個好方法。我不僅需要創建一個重複相同值的數組,但是我必須事先知道參數的數量,然後循環遍歷這些參數來構建第一個參數的數組。 – Nathanael 2012-08-13 02:14:00