2012-08-13 34 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