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} 

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

  1. smarty foreach循环

    1,smarty foreach1,单纯的数组array(1000,2000,3000),使用foreach(from = $array item=foo){$foo}2,键值对数组<ul> ...

  2. smarty -- foreach用法

    {foreach},{foreachelse} 用于像访问序数数组一样访问关联数组 {foreach},{foreachelse} {foreach} is used to loop over an  ...

  3. smarty foreach 最全用法

    <?php$search_condition = "where name like '$foo%' ";$sql = 'select contact_id, name, ni ...

  4. smarty -- foreach用法详解

    {foreach},{foreachelse} 用于像访问序数数组一样访问关联数组 {foreach},{foreachelse} {foreach} is used to loop over an  ...

  5. php smarty foreach循环注意

    在template中,要注意{foreach from=$arr item=value}其中的value不需要$美元符号

  6. smarty foreach

    <{foreach from=$data item=val }> <tr align="center"> <td><{$val.item_ ...

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

    一.item属性用法 <?php $arr = array(, , ); $smarty->assign('testarrg', $arr); ?> 用Smarty中的foreach ...

  8. Smarty控制foreach输出数量

    最近在搞ecshop,ecshop用的是smarty.在首页中想要修改展示的商品数量,但是用的是foreach,让我无从下手,在网上找了好久终于找到解决方案. <!--{foreach name ...

  9. Smarty for foreach 使用

    {for} {for}{forelse}用于创建一个简单的循环. 下面的几种方式都是支持的: {for $var=$start to $end}步长1的简单循环. {for $var=$start t ...

随机推荐

  1. 【Java】java基本知识

    1.int与Integer的区别 int是基本数据类型,Integer是一个引用数据类型. e.g: int num = 100; // 不是对象 Integer i = 100; // 是对象 // ...

  2. 通过 DevOps 整合开发和应用安全管道

    [编者按]作者 Aaron Volkmann 是 CERT Division 高级研究员,通过提出了一种集成安全系统到 CI/CD 的方法,让机构保持快速部署到生产环境能力的同时,也大幅度降低安全隐患 ...

  3. 一个漂亮的DIV搜索条

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. Spark:Master High Availability(HA)高可用配置的2种实现

    Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存在着Master单点故障的问题.如何解决这个单点故障的问题,Spar ...

  5. 用Robotium 去实现点击imageview

    今天用rototium做自动化遇到imageview无法点击的问题,最终解决如下: 有两种方法: 1.View v = solo.getView(R.id.iv_main_setting);      ...

  6. 教程:在 VM Depot 中查找 Azure 可用的虚拟机镜像

     发布于 2014-07-08 作者 陈 忠岳 对于 Azure 的社区管理虚拟机资源库--VM Depot--的用户来说,网站的搜索功能已得到极大的改善.这一搜索能力的增强,可以帮助用户更容易地 ...

  7. openstack简易汉化

  8. CSS 属性 - 伪类和伪元素

    CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果.这里特殊指的是两者描述了其他 cs ...

  9. UVA 465 (13.08.02)

     Overflow  Write a program that reads an expression consisting of twonon-negative integer and an ope ...

  10. 公司框架将入参Map化

    1.Map<String,Object> map = BeanUtil.describe(inDto);