Smarty Foreach 使用说明_php模板

May 17, 2016 am 09:26 AM
foreach smarty

foreach 是除 section 之外处理循环的另一种方案(根据不同需要选择不同的方案)。 foreach 用于处理简单数组(数组中的元素的类型一致),它的格式比 section 简单许多,缺点是只能处理简单数组。
foreach 必须和 /foreach 成对使用,且必须指定 from 和 item 属性。
将 from 属性指定的数组中的数据遍历处理到 item 属性指定的变量中。
参考 foreach (array_expression as $key => $value)
from array_expression;item $value;key $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}

{/foreach}

输出结果:
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}

输出结果:
phone: 1
fax: 2
cell: 3
phone: 555-4444
fax: 555-3333
cell: 760-1234

.index
index 包含当前数组索引,从"0"开始
例如:
复制代码 代码如下:


{foreach from=$items key=myId item=i name=foo}
{if $smarty.foreach.foo.index % 5 == 0} {* $smarty.foreach.foo.index 对 5 求余 *}

{/if}

{/foreach}
Title
{$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
当前 foreach 循环第一次执行时 first 被设置成 true。
例如:
复制代码 代码如下:

{* 当循环第一次执行时显示 LATEST , o 否则显示 id *}

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




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


.last
当前 foreach 循环执行到最后一遍时 last 被设置成 true.
例如:
复制代码 代码如下:

{* 在列表最后添加水平线 *}
{foreach from=$items key=part_id item=prod name=products}
{$prod}{if $smarty.foreach.products.last}
{else},{/if}
{foreachelse}
... content ...
{/foreach}

.total
total 用于显示循环执行的次数,可以在循环中或循环执行后调用.
例如:
复制代码 代码如下:

{* 在最后显示行数 *}
{foreach from=$items key=part_id item=prod name=foo}
{$prod.label}

{if $smarty.foreach.foo.last}
{$smarty.foreach.foo.total} items

{/if}
{foreachelse}
... something else ...
{/foreach}
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java ArrayList を走査するときに要素を削除するために foreach と iterator を使用することの違いは何ですか? Java ArrayList を走査するときに要素を削除するために foreach と iterator を使用することの違いは何ですか? Apr 27, 2023 pm 03:40 PM

Java ArrayList を走査するときに要素を削除するために foreach と iterator を使用することの違いは何ですか?

PHPでforeachループの数を確認する方法 PHPでforeachループの数を確認する方法 Jul 10, 2023 pm 02:18 PM

PHPでforeachループの数を確認する方法

PHPはキー値を反転した配列を返します PHPはキー値を反転した配列を返します Mar 21, 2024 pm 02:10 PM

PHPはキー値を反転した配列を返します

PHP は配列内の現在の要素を返します PHP は配列内の現在の要素を返します Mar 21, 2024 pm 12:36 PM

PHP は配列内の現在の要素を返します

forEach 関数を使用してオブジェクトのプロパティを反復処理するにはどうすればよいですか? forEach 関数を使用してオブジェクトのプロパティを反復処理するにはどうすればよいですか? Nov 18, 2023 pm 06:10 PM

forEach 関数を使用してオブジェクトのプロパティを反復処理するにはどうすればよいですか?

PHP と Smarty を使用してフロントエンドとバックエンドの分離開発を実現する方法 PHP と Smarty を使用してフロントエンドとバックエンドの分離開発を実現する方法 Jun 25, 2023 pm 01:46 PM

PHP と Smarty を使用してフロントエンドとバックエンドの分離開発を実現する方法

PHP のテンプレート エンジン Smarty に関する予備調査 PHP のテンプレート エンジン Smarty に関する予備調査 May 11, 2023 pm 05:15 PM

PHP のテンプレート エンジン Smarty に関する予備調査

foreach と for ループの違いは何ですか foreach と for ループの違いは何ですか Jan 05, 2023 pm 04:26 PM

foreach と for ループの違いは何ですか

See all articles