2011-10-06 18 views
23

Quiero formatear una cadena con sprintf pero repito muchas veces un argumento. ver ..sprintf - argumentos que se repiten

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

Considerando esa cadena para formatear, quiero repetir la segunda arg dos veces.

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

Y el resultado deseado como:

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

Hay una manera de hacer eso ??

Respuesta

47

Todo está en el documentation!

$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"); 

Nota: Use comillas simples para la cadena de formato de lo contrario obtendrá Aviso PHP: Undefined variable: s en/path/a/tofile: Línea

Usted también puede escapar de la $ con a \ si está utilizando comillas dobles.

+0

Mi error, está claro en los documentos! Gracias. –

Cuestiones relacionadas