printf / sprintf с аргументами массива вместо переменных - PullRequest
26 голосов
/ 08 сентября 2011

Как

$args = (
 'var1' => 'abc',
 'var2' => 'def',
);


$text = sprintf('first var is: %1$s, second one is: %2$s', $args);

В основном переменная $args является динамической, я не знаю, будет ли в ней какая-либо запись или сколько.

Текст тоже, я не знаю, потребует ли он замены переменных или сколько.

Как создать такую ​​функцию, которая каким-то образом извлекает элементы и заменяет их в тексте, если присутствуют такие вещи, как %s %d, %1$s и т. Д.?

1 Ответ

38 голосов
/ 08 сентября 2011

Вы, вероятно, хотите vsprintf().

...