2011-10-06 14 views
23

Chcę sformatować ciąg znaków za pomocą sprintf, ale wielokrotnie powtarzam argument. zobacz ..sprintf - powtarzające się argumenty

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

Biorąc pod uwagę ten ciąg do sformatowania, chcę powtórzyć drugi arg dwa razy.

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

A poszukiwany wynik jak:

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

istnieje sposób, aby to zrobić ??

Odpowiedz

47

Wszystko to w wersji 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"); 

Uwaga: apostrofów w ciągu formatu inaczej dostaniesz PHP Wskazówka: Undefined zmiennej: s w/ścieżka/do/tofile: linia

Można też uciec z $ a \, jeśli używasz podwójnych cudzysłowów.

+0

Mój błąd, jest oczywiste na dokumentach! Dziękuję Ci. –

Powiązane problemy