da me funziona...
codice:
$tran=array();
$n=5;
$total=20;
$tran[20]="Il carrello contiene %1\$d prodotti per un totale di %2\$d euro";
$pattern1 = "    

".$tran[20]."</p>";
printf($pattern1, $n, $total); //Il carrello contiene 5 prodotti per un totale di 20 euro