(转)Smarty Foreach 使用说明

foreach 是除 section 之外处理循环的另一种方案(根据不同需要选择不同的方案)。 foreach 用于处理简单数组(数组中的元素的类型一致),它的格式比 section 简单许多,缺点是只能处理简单数组。

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}<br> 
{/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}<br> 
{/foreach} 
{/foreach}

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

.index 
index 包含当前数组索引,从"0"开始 
例如:

复制代码代码如下:

<table> 
{foreach from=$items key=myId item=i name=foo} 
{if $smarty.foreach.foo.index % 5 == 0} {* $smarty.foreach.foo.index 对 5 求余 *} 
<tr><th>Title</th></tr> 
{/if} 
<tr><td>{$i.label}</td></tr> 
{/foreach} 
</table>

.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 *} 
<table> 
{foreach from=$items key=myId item=i name=foo} 
<tr> 
<td>{if $smarty.foreach.foo.first}LATEST{else}{$myId}{/if}</td> 
<td>{$i.label}</td> 
</tr> 
{/foreach} 
</table>

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

复制代码代码如下:

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

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

复制代码代码如下:

{* 在最后显示行数 *} 
{foreach from=$items key=part_id item=prod name=foo} 
{$prod.label}<hr/> 
{if $smarty.foreach.foo.last} 
<div id="total">{$smarty.foreach.foo.total} items</div> 
{/if} 
{foreachelse} 
... something else ... 
{/foreach}

时间: 2024-10-09 21:29:44

(转)Smarty Foreach 使用说明的相关文章

smarty -- foreach用法

{foreach},{foreachelse} 用于像访问序数数组一样访问关联数组 {foreach},{foreachelse} {foreach} is used to loop over an associative array as well a numerically-indexed array, unlike {section} which is for looping over numerically-indexed arrays only. The syntax for {for

smarty foreach循环

1,smarty foreach1,单纯的数组array(1000,2000,3000),使用foreach(from = $array item=foo){$foo}2,键值对数组<ul>{foreach from=$myArray key=k item=v}<li>{$k}: {$v}</li>{/foreach}</ul>3,键值对数组<ul>{foreach from=$items key=myId item=i}<li>&l

夺命雷公狗---Smarty NO:10 foreach数组的遍历

功能:主要实现对数组的遍历输出 基本语法: foreach,foreachelse {foreach from=数组 key=键 name=名称 item=内容 } {foreachelse} {/foreach} from:要遍历输出的数组 item:每次遍历时,系统会自动将遍历的结果放入item内容中 key:键值,每次遍历时,系统会将遍历的键值放入key中 name:foreach名称,为foreach起名 foreachelse:当数组为空时,执行此句 demo4.html示例代码 <!

Smarty模板技术之foreach遍历数组实例全面讲解

一.item属性用法 <?php $arr = array(600, 851, 7412); $smarty->assign('testarrg', $arr); ?> 用Smarty中的foreach方法来遍历并输出这个数组 <dl> <dt>foreach中item属性用法</dt> {foreach from=$testarrg item=test} <dd>{$test}</dd> {/foreach} </dl&

ecshop中smarty最常用的6大基本语法

模板制作比较核心的其实就是变量的使用,因为这些就是数据的根本,想从数据库里获取数据并显示在界面就必须使用smarty来展示,下面是关于smarty的介绍和使用.Smarty是一个php模板引擎,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法.Smarty要求web服务器运行php4.0.6和以上版本.smarty安装需要smarty库文件.可以去官方网站http://smarty.php.net下载.网上讲了很多安装的教程,但是我都没有成功,所以直接把整个目录名改为smarty直接复制到

ecshop 模板变量循环 foreach

ecshop是smarty的改版,删除了一些功能,比如模板中的四则运算被删除了,比如我们想通过运算得到循环的key+1这样是得不到他的值的,不过我们可以使用其他的方法来得到. .iteration iteration contains the current loop iteration and always starts at one, unlike index It is incremented by one on each iteration. 比如 $menu_list = array(

PHP模板引擎smarty详细介绍

篇文章主要介绍了PHP模板引擎smarty详细介绍,本文讲解了什么是smarty.smarty优点.不适合使用smarty的地方.smarty目录结构及版本,需要的朋友可以参考下 /* 一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲, 目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要. 二.smarty优

Smarty模本引擎

封装一个自定义Smarty引擎 Smart模板注释 基本语法:{* 注释内容 *} Smarty模板中的变量 简单变量 四种标量类型:整型.浮点型.布尔型和字符串型! 数组变量 可以给模板分配一个数组变量使用(一维和多维都可以) 对象变量 我们同样的可以将一个对象变量分配给模板文件,然后通过{$对象名->属性名}来访问这个对象的属性值! 变量调节器 基本语法 不同的调节器有不同的名字,可以完成不同的功能,并且不同的调节器都有自己不同的参数! {$变量名|调节器名:参数1:参数2:参数3--} c

PHP smarty

<?php/*一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要. 二.smarty优点: 1. 速度:采用smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的. 2. 编译型:采用smarty编写的程序在运行时要编译成一个非模