{foreach},{foreachelse}Nom attributTypeRequisDefautDescriptionfromtableauouin/aLe tableau à parcouriritemchaîne de caractèreOuin/aLe nom de la variable "élément courant"keychaîne de caractèreNonn/aLe nom de la variable représentant la clef courante.namechaîne de caractèreNonn/aLe nom de la boucle foreach, qui nous permettra
d'accéder à ses propriétés.
Les boucles {foreach} sont une alternative aux boucles
section.
Les boucles {foreach}
sont utilisées pour parcourir des tableaux associatifs simples.
La syntaxe des boucles {foreach} est bien plus simple
que celle des boucles {section}, mais en contrepartie,
elles ne peuvent être utilisées que pour des tableaux associatifs
simples. La balise {foreach} doit toujours être accompagnée
de la balise {/foreach}. Les paramètres requis sont
from et item. Le nom des boucles
{foreach} doit être composés exclusivement de lettres,
chiffres et underscores, selon vos préférences. Les boucles
{foreach} peuvent être imbriquées.
La variable from (généralement le tableau à
parcourir) détermine le nombre de fois que {foreach}
sera exécuté. {foreachelse} est exécuté si aucune
valeur n'est présente dans la variable donnée à l'attribut
from.
foreach
assign('custid', $arr);
?>
]]>
{/foreach}
]]>
L'exemple ci-dessus affichera :
id: 1001
id: 1002
]]>
foreach key
assign('contacts', array(
array('phone' => '1',
'fax' => '2',
'cell' => '3'),
array('phone' => '555-4444',
'fax' => '555-3333',
'cell' => '760-1234'))
);
?>
]]>
{foreach key=key item=item from=$contact}
{$key}: {$item}
{/foreach}
{/foreach}
]]>
L'exemple ci-dessus affichera :
phone: 1
fax: 2
cell: 3
phone: 555-4444
fax: 555-3333
cell: 760-1234
]]>
{foreach} - Exemple avec une base de données (eg PEAR ou ADODB)
assign("contacts", $db->getAssoc($sql));
?>
]]>
{$con.name} - {$con.nick}
{/foreach}
]]>
Les boucles {foreach} ont également leurs propres variables qui gèrent les propriétés
de {foreach}. Elles sont indiquées par :
{$smarty.foreach.foreachname.varname}
où foreachname est le nom spécifié par l'attribut name
de foreach.
Voir {section}
pour des exemples avec les proriétés ci-dessus.
iterationiteration est utilisé pour afficher l'itération de la boucle courante.
iteration commence toujours par 1 et est incrémenté
à chaque itération.
firstfirst est défini à true si l'itération courante de foreach est la première.
lastlast est défini à true si l'itération courante de foreach est la dernière.
showshow est utilisé en tant que paramètre de foreach.
show est un booléen (true ou false).
S'il vaut false, foreach ne sera pas affiché. Si foreachelse est présent,
il sera affiché alternativement.
totaltotal est utilisé pour afficher le nombre d'itérations
bouclées par ce foreach. Il peut être utilisé dans ou après le foreach.
Voir aussi
{section} et
$smarty.foreach.