Develop and Download Open Source Software

Recent Changes

2010-08-27
2010-03-14
2010-01-13
2010-01-12

Wiki Guide

Side Bar

<{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 属性
<?php
$arr = array(1000, 1001, 1002);
$simplate->assign('myArray', $arr);
?>

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

<ul>
<{foreach from=$myArray item=foo}>
    <li><{$foo}></li>
<{/foreach}>
</ul>

出力

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

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

<ul>
<{foreach from=$myArray key=k item=v}>
   <li><{$k}>: <{$v}></li>
<{/foreach}>
</ul>

出力

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

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

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

出力

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

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

<?php
 $simplate->assign('contacts', array(
                             array('phone' => '1',
                                   'fax' => '2',
                                   'cell' => '3'),
                             array('phone' => '555-4444',
                                   'fax' => '555-3333',
                                   'cell' => '760-1234')
                             ));
?>

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

<{foreach item=contact from=$contacts}>
  <hr />
  <{foreach key=key item=item from=$contact}>
    <{$key}>: <{$item}><br />
  <{/foreach}>
<{/foreach}>

出力

<hr />
  phone: 1<br />
  fax: 2<br />
  cell: 3<br />
<hr />
  phone: 555-4444<br />
  fax: 555-3333<br />
  cell: 760-1234<br />

SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.