I'll be NET 】創作サイトから中小企業まで東京都三鷹市で低価格高品質なホームページ制作(SOHO)

トップページ > PHP > smartyのforeachで配列を繰り返して表示する方法

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

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

記事移動

関連記事

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

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

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

smartyのassignでテンプレート内変数を定義する方法

smartyでいろいろ計算をする(math利用法)

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

Comment Form

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

ユーティリティ

創作サイトから中小企業まで東京都三鷹市で低価格高品質なホームページ制作(SOHO)【I'll be NET】

プロフィール

author:I'll be NET

since:2014.01.01

東京都を拠点としたSOHO(フリーランス)による創作サイト向けWEB制作サービスを行っています。 お仕事とか創作活動とかでメモっておきたいこととかを掲載しています。

more

Feed