<{foreach}>

<{foreach}> を使用して、通常の数値添字配列と同じように 連想配列 をループします。 <{section}> のように、数値添字の配列のみ をループさせるということはありません。 <{foreach}> の構文は <{section}> よりずっと簡単ですが、その代わりに 1 つの配列 しか扱えません。 すべての <{foreach}> タグは、終了タグ <{/foreach}> とペアである必要があります。

属性名 必須 デフォルト 概要
from array Yes n/a ループに使用する配列
item string Yes n/a 現在の要素を示す変数の名前
key string No n/a 現在のキーを示す変数の名前
  • 必須の属性は from と item です。
  • from 属性は、通常は値の配列で、 <{foreach}> のループ回数を決定するために使われます。
例. item 属性
  1. <?php
  2. $arr = array(1000, 1001, 1002);
  3. $simplate->assign('myArray', $arr);
  4. ?>

$myArray を順序なしリストで出力するテンプレート

  1. <ul>
  2. <{foreach from=$myArray item=foo}>
  3. <li><{$foo}></li>
  4. <{/foreach}>
  5. </ul>

出力

  1. <ul>
  2. <li>1000</li>
  3. <li>1001</li>
  4. <li>1002</li>
  5. </ul>
例. item および key 属性の説明
  1. <?php
  2. $arr = array(9 => 'Tennis', 3 => 'Swimming', 8 => 'Coding');
  3. $simplate->assign('myArray', $arr);
  4. ?>

$myArray を キー/値 のペアで出力するテンプレート。 PHP の foreach と似ています。

  1. <ul>
  2. <{foreach from=$myArray key=k item=v}>
  3. <li><{$k}>: <{$v}></li>
  4. <{/foreach}>
  5. </ul>

出力

  1. <ul>
  2. <li>9: Tennis</li>
  3. <li>3: Swimming</li>
  4. <li>8: Coding</li>
  5. </ul>
例. {foreach} で連想配列の item 属性を指定する例
  1. <?php
  2. $items_list = array(23 => array('no' => 2456, 'label' => 'Salad'),
  3. 96 => array('no' => 4889, 'label' => 'Cream')
  4. );
  5. $simplate->assign('items', $items_list);
  6. ?>

$items と $myId を url に出力するテンプレート

  1. <ul>
  2. <{foreach from=$items key=myId item=i}>
  3. <li><a href="item.php?id=<{$myId}>"><{$i.no}>: <{$i.label}></li>
  4. <{/foreach}>
  5. </ul>

出力

  1. <ul>
  2. <li><a href="item.php?id=23">2456: Salad</li>
  3. <li><a href="item.php?id=96">4889: Cream</li>
  4. </ul>
例. {foreach} で item と key をネストする例

配列を Simplate に割り当てます。key にはループする値のキーが含まれます。

  1. <?php
  2. $simplate->assign('contacts', array(
  3. array('phone' => '1',
  4. 'fax' => '2',
  5. 'cell' => '3'),
  6. array('phone' => '555-4444',
  7. 'fax' => '555-3333',
  8. 'cell' => '760-1234')
  9. ));
  10. ?>

$contact を出力するテンプレート

  1. <{foreach item=contact from=$contacts}>
  2. <hr />
  3. <{foreach key=key item=item from=$contact}>
  4. <{$key}>: <{$item}><br />
  5. <{/foreach}>
  6. <{/foreach}>

出力

  1. <hr />
  2. phone: 1<br />
  3. fax: 2<br />
  4. cell: 3<br />
  5. <hr />
  6. phone: 555-4444<br />
  7. fax: 555-3333<br />
  8. cell: 760-1234<br />