Smarty:Smartyでforeachをする方法

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

システムを実装していると、データを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)

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

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

今回はSmartysectionを使用して、phpfor文と同じように使用する方法をメモします。


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に初期値を設定します。