Smarty:Smartyでforeachをする方法

Smartyでforeachを使用して、繰り返し(ループ)処理をする方法をメモします。

システムを実装していると、データをforeachしてループさせることが結構あります。

phpの場合と記述方法が違うので注意です。


■ Smartyでforeachをする方法

【phpの場合】

foreach ($data as $key => $value) {
	echo $key;
	echo $value;
}

【Smartyの場合】

{foreach from=$data item=value key=key}
	{$key}
	{$value}
{foreachelse}
	データがない場合の処理を記述
{/foreach}

fromに配列を指定し、itemに値の名前、keyにキーの名前を指定します。
データがない場合、「foreachelse」に入ります。


Smarty:Smartyでfor文を使用する(section)

Smartyでphpのfor文のようにループを行いたい場合があります。
フォームなどで選択する月や日などはループさせて出力することが多いです。

phpの記述と違って、Smartyではsectionを使用します。

今回はSmartyのsectionを使用して、phpのfor文と同じように使用する方法をメモします。


■ Smartyのsectionでfor文のように使用

【phpの場合】

for ($i = 1; $i < 13; $i++) {
	echo $i;
}

【Smartyの場合】

{section name=i start=1 loop=13}
	{$smarty.section.i.index}
{/section}

Smartyではfor文ではなく、sectionを使用してループさせます。
startに初期値を設定します。