> PHP > smartyのforeachで最初と最後のループの時になにかする方法

smartyのforeachで最初と最後のループの時になにかする方法

  • 投稿日:2015/11/18 |最終更新:2015/11/19
  • PHP
  • smarty

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

この記事が気に入ったらシェアしてください

関連記事

PHPで空白・改行コードを削除する方法

PHPで空白・改行コードを削除する方法

Smartyで配列の中身をデバッグする方法

カラーミーでカテゴリー商品一覧画面・グループ商品一覧画面で表示を変える方法

カラーミーでカテゴリー商品一覧画面・グループ商品一覧画面で表示を変える方法

カラーミーで共通のパーツを複数の画面で呼び出す方法

カラーミーで共通のパーツを複数の画面で呼び出す方法

smartyのarray_key_existsで配列の中のキーの有無を調べる方法

smartyのin_arrayで配列の中の値の有無を調べる方法

Comment Form

コメント投稿はこちらをクリックしてください
  • コメントを入力してください。
登録フォーム
Name
Mailaddress
URL
Message
Postkey
(スパム対策に、投稿キー を半角で入力してください。)