2010-11-29 5 views
0

Une question simple que je ne peux pas comprendre. J'ai ce script sendmail simple en php. Mais j'ai besoin de la matrice printet (qui imprime le corps de l'email) pour être splittet.Split sprintf() dans la boucle foreach

Quelle est la solution la plus simple pour rendre le résultat de la boucle foreach être:
1. Dans les 4 premiers messages du tableau, seule la valeur et non la clé du poste est printet
2. Le reste du tableau est printet, à la fois les clés et les valeurs.
J'utilise actuellement ceci:

foreach($fields as $a => $b){ $body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); } 

peut sembler ne pas obtenir ma tête autour d'elle. Toute aide est la bienvenue! Troels

+0

Ajoutez un compteur, ajoutez une instruction if pour> = 4. Affiner plus tard;) – Leonidas

Répondre

1

Quelque chose comme?

$i = 0; 
foreach($fields as $a => $b) { 
$i++; 
if ($i>3) $body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); 
} 
+1

$ i = 0; foreach ($ champs comme $ a => $ b) { $ i ++; si ($ i> 3) $ body. = Sprintf ("% s \ n", $ _ REQUEST [$ a]); else $ body. = Sprintf ("% 20s:% s \ n", $ b, $ _ DEMANDE [$ a]); } Devinez c'est alors une solution décente – Troels