我正在寻找一个函数,用数组给出的值替换某些符号组合。
示例:
$array = array('Tom','Smith');
$string = 'My first name is %% and my last name is %%';
var_dump(str_replace('%%', $array, $string));
预期结果是
我的名字是汤姆,我的姓是史密斯
但我得到
我的名字是Array,我的姓是Array
我想如果我把array('%%','%%')
作为str_replace
的第一个参数我会得到正确的输出,但我可能并不总是知道数组中有多少元素所以我正在寻找一个只需要替换序列一次的函数,并用每个后续数组元素替换每个匹配项。有这样的功能吗?
答案 0 :(得分:7)
为此,只需使用vsprintf功能。
var_dump(vsprintf('My first name is %s and my last name is %s', $array)
每个%s
代表一个字符串。您应该阅读format part of this以了解原因%s
以及它可能是什么