用不同的字符串多次替换相同的字符

Mat*_*att 0 php string

我有一个字符串中有相同的字符几次,我想用一个不同的字符串替换每个出现的字符.就像准备好的陈述一样:

字符串:"SELECT * FROM x WHERE a = ? AND b = ?"
数组:['alpha', 'beta']

结果: "SELECT * FROM x WHERE a = alpha AND b = beta"

dec*_*eze 8

如果您可以控制替换字符是什么,请使用 sprintf

sprintf('Hello %s, how %s %s?', 'World', 'are', 'you');
Run Code Online (Sandbox Code Playgroud)

或者vsprintf:

vsprintf('Hello %s, how %s %s?', array('World', 'are', 'you'));
Run Code Online (Sandbox Code Playgroud)

即使你不这样做:

$str = 'Hello ?, I hope ? ?.';
$str = str_replace('?', '%s', $str);
$str = sprintf($str, "World", "you're", "fine");
Run Code Online (Sandbox Code Playgroud)