> PHP > smartyのforeachで配列を繰り返して表示する方法

smartyのforeachで配列を繰り返して表示する方法

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

smartyは、PHPのテンプレートエンジンです。
smarty内では、{foreach}で配列を繰り返すことができます。

smartyでforeachを利用して配列を繰り返して表示する方法

下記のようにすると、ulリスト内で配列の値の個数分liアイテムを繰り返して表示することができます。

<ul>
{foreach from=$配列の変数 item='配列内で利用する値の変数' key='配列内の値のキー' name='ループの名前'}
    <li>{$key}:{$item}</li>
{/foreach}
</ul>

item=''、key=''、name=''内に「$」は必要ありません。
foreachを利用するとき、fromとitemは必須ですが、keyとnameは必須ではありません。
keyとnameは必要な場合に任意で記述してください。

freoでforeachを使うときのワンポイント

freoで配列をforeachで繰り返して表示したい場合は、配列の変数に[|smarty:nodefaults]という変数をつけてください。
freoでは全ての変数がescapeされているためです。

参考URL:32877|【freo講座】【初心者の為のfreoテンプレート編集講座】【基本編(07)】修飾子について

多次元配列をsmartyでforeachするサンプル

例えば、下記のような多次元配列があったとします。

$arrays = array(
    [0] => array(
        [0] => array(
            'id'   => '1'
            'name' => '田中'
        )
        [1] => array(
            'id'   => '2'
            'name' => '鈴木'
        )
    )
    [1] => array(
        [0] => array(
            'id'   => '1'
            'name' => '東京'
        )
        [1] => array(
            'id'   => '2'
            'name' => '大阪'
        )
    )
)

上記配列のidとnameを取得するには、下記のようにすればOKです。

{foreach from=$arrays item='array'}
    <div>
    {foreach from=$array item='data'}
        <ul>
        {foreach from=$data item='content' key='key'}
            <li>{$key}:{$content}</li>
        {/foreach}
        </ul>
    {/foreach}
    </div>
{/foreach}

または

{foreach from=$arrays item='array'}
    <div>
    {foreach from=$array item='data'}
        <ul>
            <li>id:{$data.id}</li>
            <li>name:{$data.name}</li>
        </ul>
    {/foreach}
    </div>
{/foreach}

参考URL

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

関連記事

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

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

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

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

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

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

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

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

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

Comment Form

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