Подтвердить что ты не робот

Sprintf - повторяющиеся аргументы

Я хочу форматировать строку с sprintf, но повторяя много раз аргумент. см..

$str = "Str 1: %s - Str 2: %s - Str 2 again: %s";

Учитывая, что строка в формате, я хочу повторить второй аргумент два раза.

echo sprintf($str, "I'm string 1", "My name is string 2");

И желаемый результат вроде:

Str 1: I'm string 1 - Str 2: My name is string 2 - Str 2 again: My name is string 2

Есть ли способ сделать это?

4b9b3361

Ответ 1

Все это в документации!

$str = 'Str 1: %1$s - Str 2: %2$s - Str 2 again: %2$s';
echo sprintf($str, "I'm string 1", "My name is string 2");

Примечание. Используйте одинарные кавычки для строки формата, иначе вы получите Примечание PHP: переменная Undefined: s в /path/to/tofile: строка

Вы также можете избежать $ с помощью \, если вы используете двойные кавычки.