ループ名の設定

広告

{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 )