foreach は、セクション以外にループを処理するもう 1 つの方法です (さまざまなニーズに応じてさまざまなオプションを選択してください)。 foreach は単純な配列を処理するために使用されます (配列内の要素は同じ型です)。欠点は、単純な配列しか処理できないことです。
foreach は /foreach とペアで使用する必要があり、from 属性と item 属性を指定する必要があります。
from 属性で指定された配列内のデータを、item 属性で指定された変数にトラバースします。
foreach (array_expression as $key => $value)
from <=> item <=> $key;
name属性は任意(文字、数字、アンダースコアの組み合わせ)で指定できます。
Foreach はネストできますが、ネスト内の foreach の名前は一意である必要があります。
from 属性 (通常は配列) はループの数を決定します。
foreachelse ステートメントは、from 属性に値がない場合に実行されます。 (from 属性で指定された値が空の場合は、foreachelse ステートメントを使用して指定できます。そうでない場合は、どうすればよいですか)
foreach ループには、ループにアクセスするために使用できる独自の変数名があります。使用方法は {$smarty.foreach.foreachname.varname} です。foreachname は foreach で指定された name 属性です。
foreach デモ
{* この例では、配列 $custid* 内のすべての要素の値を出力します。}
コードをコピー コードは次のとおりです。
{foreach from=$custid item=curr_id}
id: {$curr_id}
出力結果:
コードをコピー コードは次のとおりです:
$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 }
{/foreach}
{ /foreach}
出力結果:
コードをコピー コードは次のとおりです。
タイトル |
---|
{$i.label} |
コードは次のとおりです。 {* 出力 0|1, 1| 2、2| 3、...など*}
{foreach from=$myArray item=i name=foo}{$smarty.foreach.foo.index}|{$smarty.foreach.foo .iteration},
{/foreach}
.first
first は、現在の foreach ループが初めて実行されるときに true に設定されます。
コードは次のとおりです: {* ループ実行時に LATEST を表示初めて、o それ以外の場合は id を表示します *}
{$i.label} |
{*リストの最後*} {foreach from=$items key=part_id item=prod name=products} {$prod}{else },{/if}
{foreachelse}... コンテンツ ...
{/foreach}
.total
total はループの実行時間を表示するために使用され、ループ内またはループの実行後に呼び出すことができます。
{* 在最終表示行数 *}
{foreach from=$items key=part_id item=prod name=foo}
{$prod.label}