Smarty マニュアル

前のページ

第 7章組み込み関数

次のページ

foreach,foreachelse

属性名型必須デフォルト概要

from

array

Yes

n/a

ループに使用する配列

item

string

Yes

n/a

現在の要素を示す変数の名前

key

string

No

n/a

現在のキーを示す変数の名前

name

string

No

n/a

foreachプロパティにアクセスするためのforeachループ名

foreachループはsectionループに代わるもので、1つの連想配列をループするために使われます。foreachの構文はsectionよりも簡単ですが、その代わり1つの配列しか使えません。{foreach}と{/foreach}はペアである必要があります。必須のパラメータはfrom とitemです。foreachループの名前には英数字とアンダースコアを使って自由に命名できます。foreachループはネスト可能で、その場合のname属性はお互いにユニ ークである必要があります。from属性で指定した変数(たいていは配列)はforeachをループする回数を決定するために使われます。この変数に値が存在しない場合はforeachelseが実行されます。

例 7-4. foreach

{* 配列$custidの値を全て表示 *}{foreach from=$custid item=curr_id}id: {$curr_id}<br>{/foreach}出力:id: 1000<br>id: 1001<br>id: 1002<br>

例 7-5. foreach key

{* keyにはループした各値のキーが含まれます。この例では次のようなテンプレート変数が割り当てられているとします。$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"), array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));*}{foreach name=outer item=contact from=$contacts} {foreach key=key item=item from=$contact} {$key}: {$item}<br> {/foreach}{/foreach}出力:phone: 1<br>fax: 2<br>cell: 3<br>phone: 555-4444<br>fax: 555-3333<br>cell: 760-1234<br>

foreach ループは foreachプロパティを操作する自身の変数を持っています。 これらは次のように表されます: {$smarty.foreach.foreachname.varname}foreachname は foreach の name 属性として指定された名前になります。

iteration

iteration は現在のループが反復された回数を表示します。

iteration は常に 1 から始まり、各iteration によって 1 ずつ 増加されます。

first

first は現在の foreach の反復が最初の時、true がセットされます。

last

lastは 現在の foreach の反復が最後の時、true がセットされます。

show

show は foreach のパラメータとして使用されます。 show は true または false の boolean 値です。もしこれが false の場合は、foreach は表示されません。もし foreachelse が存在する場合は、 代わりとして表示されます。

total

total は foreach がループしたトータル回数を表示します。 これは foreach 内部または foreach ループを抜けた後でも使用できます。

ページ上段