smarty @Wiki

{foreach}

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

{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 ループを抜けた後でも使用できます。
ウィキ募集バナー