ループ名の設定
{foreach}関数のブロックの中では予約変数である{$smarty.foreach}を使用することができます。
$smarty.foreach.ループ名.プロパティ
プロパティに設定できる値はいくつか用意されており、プロパティ「iteration」では現在の繰り返し回数を取得でき、プロパティ「first」では最初の要素かどうかを区別することができます。
予約変数{$smarty.foreach}を使用するにはどのループを対象としているかを指定する必要があります。例えばループがネストしているような場合に、どのループの繰り返し回数を出力するかを明確にする必要があります。そこでどのループかを指定するために、ループに名前を設定します。
{foreach from=配列変数 item=要素用の変数 key=キー用の変数 name=ループ名} 繰り返し処理の中で行う処理 {/foreach}
「name」属性にはループ名を指定します。
例えば次のように記述します。
{foreach from=$personaldata item=var key=keyname name=loopname} {/foreach}
ループ名を設定することでループ内で予約変数{$smarty.foreach}を使用できるようになります。利用できるプロパティについては次のページ以降で詳しく見ていきます。このページでは記述方法だけ見ておいて下さい。
{foreach from=$personaldata item=var name=loopname} <p>{$smarty.foreach.loopname.iteration} : {$var}</p> {/foreach}
{$smarty.foreach.loopname.iteration}は現在のループ回数を取得できます。その為、次のような出力となります。
1 : xxxxx 2 : yyyyy 3 : zzzzz
( Written by Tatsuo Ikura )