php sprintf与数组

时间:2012-11-10 20:16:27

标签: php arrays printf

我有一个数组女巫匹配字符串占位符如下:

"some text %s another text %s extra text %s"

和数组:

$array[0] match the first %s 
$array[1] match the second %s 
$array[2] match the third %s 

我认为可以使用sprintf函数完成如下:

$content = sprintf("some text %s another text %s extra text %s", $array);

但这会返回太少的参数错误,我试图使用implode:

$content = sprintf("some text %s another text %s extra text %s", implode(",",$array));

提前致谢

4 个答案:

答案 0 :(得分:42)

使用vsprintf代替sprintf。它采用一个数组参数来格式化字符串。

$content = vsprintf("some text %s another text %s extra text %s", $array);

答案 1 :(得分:5)

PHP 5.6 +中的sprintf("some text %s another text %s extra text %s", ...$array); 的替代

this.navController.setRoot(LoginPage)

答案 2 :(得分:0)

您必须使用vsprintf()代替sprintf()

sprintf()仅接受普通变量作为参数。但是你试图将数组作为参数传递。

为此,你需要vsprintf()接受数组作为参数。

例如在您的情况下:

"some text %s another text %s extra text %s"

和数组:

$array[0] match the first %s 
$array[1] match the second %s 
$array[2] match the third %s 

要实现您的目标,您必须执行以下操作:

$output = vsprintf("some text %s another text %s extra text %s",$array);
echo $output;

输出:

some text match the first another text match the second extra text match the third

答案 3 :(得分:0)

$rv = array(1,2,3,4);
sprintf('[deepak] yay [%s]', print_r($rv, true))