ホームページ >php教程 >php手册 >Smarty Foreach の使用説明書

Smarty Foreach の使用説明書

WBOY
WBOYオリジナル
2016-06-13 12:18:02965ブラウズ

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}

出力結果:

id: 1000
id: 1001
id: 1002
foreach キーのデモとネストされたデモ
{*
配列が定義されています


コードをコピー コードは次のとおりです:

$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}


出力結果:

電話: 1
FAX: 2
携帯: 3
電話: 555-4444
ファックス: 555-3333
携帯電話: 760-1234

.index
index には、「0」から始まる現在の配列インデックスが含まれます
例:


コードをコピー コードは次のとおりです。

key=myId item=i name=foo}

{if $smarty.foreach.foo .index % 5 == 0} {* $smarty.foreach.foo.index 5 の余りを求める*}
< tr>


{/ if}

{/foreach}
タイトル
{$i.label}



.iteration
iteration には、常に 1 から始まり 1 ずつ増加する現在のループの実行回数が含まれます。実行される時間。 例:



コードをコピー

コードは次のとおりです。 {* 出力 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 を表示します *}

{foreach from=$items key=myId item=i name=foo}

;{if $smarty.foreach.foo.first}LATEST{else}{$myId}{/if}

{/foreach}
{$i.label}



.last
last は、現在の foreach ループが最後に実行されるときに true に設定されます。
例:



コードをコピーします

コードは次のとおりです:

{*リストの最後*} {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}



{if $smarty.foreach.foo.last}
{$smarty.foreach.foo.total} アイテム

{/if}
{foreachelse}
... 他のもの ...
{/foreach}