smartyで配列を繰り返して表示するときは、foreachを使います。
foreachで配列を繰り返す中で、最初のループの時と最後のループの時になにかをするには、foreachに名前をつけて利用します。
{foreach from=$array item='item' name='ループ名'}
{if $smarty.foreach.ループ名.first}初回ループ時の処理{/if}
{if $smarty.foreach.ループ名.last}最後のループ時の処理{/if}
{/foreach}
まず、name='ループ名'でループ名を設定します。
ループ名を設定したforeachの中で{$smarty.foreach.loop.first}と記述すると、初回ループ時にtrue、初回ループでないときにはfalseとなります。
また、ループ名を設定したforeachの中で{$smarty.foreach.loop.last}と記述すると、最後のループ時にtrue、最後のループでないときにはfalseとなります。
サンプル
<ul>
{foreach from=$array item='item' name='loop'}
{if $smarty.foreach.loop.first}
<li>初回のループです</li>
{elseif $smarty.foreach.loop.last}
<li>最後のループです</li>
{else}
<li>初回のループでも最後のループでもありません</li>
{/if}
{/foreach}
</ul>
上記の場合、例えば3つの値が入った配列の場合は、
<ul>
<li>初回のループです</li>
<li>初回のループでも最後のループでもありません</li>
<li>最後のループです</li>
</ul>
のように出力されます。
参考URL
- smarty:{foreach},{foreachelse}
この記事が気に入ったらシェアしてください