我有一个数组女巫匹配字符串占位符如下:
"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));
提前致谢
答案 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))