{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が実行されます。
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 属性として指定された名前になります。
foreachname は foreach の name 属性として指定された名前になります。
iteration
iteration は現在のループが反復された回数を表示します。
iteration は常に 1 から始まり、各iteration によって 1 ずつ 増加されます。
iteration は常に 1 から始まり、各iteration によって 1 ずつ 増加されます。
first
first は現在の foreach の反復が最初の時、true がセットされます。
last
lastは 現在の foreach の反復が最後の時、true がセットされます。
show
show は foreach のパラメータとして使用されます。
show は true または false の boolean 値です。もしこれが false の場合は、foreach は表示されません。もし foreachelse が存在する場合は、 代わりとして表示されます。
show は true または false の boolean 値です。もしこれが false の場合は、foreach は表示されません。もし foreachelse が存在する場合は、 代わりとして表示されます。
total
total は foreach がループしたトータル回数を表示します。 これは foreach 内部または foreach ループを抜けた後でも使用できます。