sprintf()
на самом деле не способ сделать это.Он предназначен для статических строк с динамическими заполнителями, а не динамических строк с неизвестным числом заполнителей.
Все выбранные вами параметры, независимо от того, как вы их собрали, вероятно, окажутся в массиве.Таким образом, вы можете просто implode()
это, например:
$arr = array(
'Chosen option',
'Another option'
// ...
);
$str = implode(' ', $arr);
Да, вы можете vsprintf()
это, но зачем беспокоиться о дополнительных затратах на создание строки формата, котораябыть проанализирован и интерполирован?