{foreach},{foreachelse}
Funkce {foreach} pracuje stejně jako foreach v PHP, lze ji ovšem použít pouze pro jednoduché pole (narozdíl od {section}, viz dále). Cyklus {foreach} musí být vždy ukončena párovým tagem {/foreach}. Povinné atributy funkce jsou from pro proměnnou pole a item pomocí které se pak aktuálně odkazuje na daný prvek. Funkce {foreachelse} se vykoná tehdy, když předáte atributu name prázdnou proměnnou.
Dále lze použít atribut key, který odkazuje na aktuální klíč (možná víte, že v PHP 5 již není nutné používat dlouhý zápis foreach jako v PHP 4). Posledním možným atributem je name pro označení cyklu {foreach}.
<?php
$pole = array('prvni','druhy','treti','ctvrty');
$smarty->assign('pole',$pole);
?>
a šablona:
<body>
{foreach from=$pole key=klic item=polozka}
<p>Polozka cislo {$klic} ma hodnotu {$polozka}</p>
{/foreach}
</body>
A výsledek bude:
Polozka cislo 0 ma hodnotu prvni
Polozka cislo 1 ma hodnotu druhy
Polozka cislo 2 ma hodnotu treti
Polozka cislo 3 ma hodnotu ctvrty
Pokračujte dále: {if},{elseif},{else}