> PHP > smartyのforeachでループ回数を取得する方法

smartyのforeachでループ回数を取得する方法

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

smartyで配列を繰り返して表示するときは、foreachを使います。
foreachで繰り返した回数を取得するには、foreachに名前をつけて利用します。

現時点での1から始まるループ回数を表示したいときはiteration

foreach内のループ回数をカウントしたいとき、1から始まる数字で取得したい場合は、foreachに名前をつけ、iterationを利用します。
たとえば、ループ回数が1回目なら1、2回目なら2を表示します。

解説

{foreach from=$array item='item' name='ループ名'}
    {$smarty.foreach.ループ名.iteration}
{/foreach}

まず、name='ループ名'でループ名を設定します。
ループ名を設定したforeachの中で{$smarty.foreach.loop.iteration}と記述すると、1から始まるループ回数を表示できます。

サンプル

<ul>
{foreach from=$array item='item' name='loop'}
    <li>{$smarty.foreach.loop.iteration}:{$item}</li>
{/foreach}
</ul>

現時点での0から始まるループ回数を表示したいときはindex

foreach内のループ回数をカウントしたいとき、0から始まる数字で取得したい場合は、foreachに名前をつけ、iterationを利用します。
たとえば、ループ回数が1回目なら0、2回目なら1を表示します。

解説

{foreach from=$array item='item' name='ループ名'}
    {$smarty.foreach.ループ名.index}
{/foreach}

まず、name='ループ名'でループ名を設定します。
ループ名を設定したforeachの中で{$smarty.foreach.loop.index}と記述すると、0から始まるループ回数を表示できます。

サンプル

<ul>
{foreach from=$array item='item' name='loop'}
    <li>{$smarty.foreach.loop.index}:{$item}</li>
{/foreach}
</ul>

nameの設定されたforeachのトータルのループ回数を取得するにはtotal

foreach内のトータルのループ回数を取得したいときは、totalを利用します。
たとえば、配列に3件のデータが格納されている場合は、3を表示します。

※なお、トータル回数はforeachを抜けた後でも表示することができます。
 foreachより前では利用できません。

{$smarty.foreach.loop.total}件のデータがあります。{* 合計回数を表示できません。 *}
<ul>
{foreach from=$array item='item' key='key' name='loop'}
    <li>{$key}:{$item}</li>
{/foreach}
</ul>
{$smarty.foreach.loop.total}件のデータがあります。{* 合計回数を表示できます。 *}

参考URL

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

関連記事

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

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

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

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

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

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

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

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

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

Comment Form

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