PHP Manual

PEAR Manual

Smarty Manual

PostgreSQL

MySQL Manual

Perl Manual

{foreach},{foreachelse}

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.

nom attributtyperequisdefautdescription
fromtableauouin/ale tableau à parcourir
itemchaî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.

exemple 7-5. foreach

<?php
$arr 
= array( 1001,1002,1003);
$smarty->assign('custid'$arr);
?>
{* cet exemple affiche toutes les valeurs du tableau $custid *} {foreach from=$custid item=curr_id}   id: {$curr_id}<br /> {/foreach}

l'exemple ci-dessus affichera :

id: 1000<br /> id: 1001<br /> id: 1002<br />

exemple 7-6. foreach key

// key contient la clef de chaque élément parcouru
// l'assignement ressemble à ceci :
<?php
$smarty
->assign('contacts', array(
    array(
'phone' => '1',
      
'fax' => '2',
      
'cell' => '3'),
    array(
'phone' => '555-4444',
      
'fax' => '555-3333',
      
'cell' => '760-1234'))
    );
?>
{foreach name=outer item=contact from=$contacts}   <hr />   {foreach key=key item=item from=$contact}     {$key}: {$item}<br />   {/foreach} {/foreach}

l'exemple ci-dessus affichera :

<hr />   phone: 1<br />   fax: 2<br />   cell: 3<br /> <hr />   phone: 555-4444<br />   fax: 555-3333<br />   cell: 760-1234<br />

exemple 7-7. {foreach} - exemple avec une base de données (eg pear ou adodb)

<?php
$sql 
'select contact_id, name, nick from contacts order by contact';
$smarty->assign("contacts"$db->getassoc($sql));
?>
{foreach key=cid item=con from=$contacts}  <a href="contact.php?contact_id={$cid}">{$con.name} - {$con.nick}</a><br /> {/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.

iteration

iteration est utilisé pour afficher l'itération de la boucle courante. iteration commence toujours par 1 et est incrémenté à chaque itération.

first

first est défini à true si l'itération courante de foreach est la première.

last

last est défini à true si l'itération courante de foreach est la dernière.

show

show 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.

total

total 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.