【转载】Smarty中Foreach的使用

原创 2013年12月04日 14:29:33

        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遍历使用方法

Smarty -  {foreach},{foreachelse} Attribute Name属性名称 Type类型 Required必要 Default默认值 Descripti...
  • h330531987
  • h330531987
  • 2017年04月04日 20:48
  • 975

smarty自定义函数【register,block】以及自定义插件

这是smarty的两个比较常用的自定义函数的方法。 这里面设计了两个文件,一个是模板文件:testfunction.html 另外一个可以称之为控制器文件:functioncontroller.php...
  • jijunyuan_11109
  • jijunyuan_11109
  • 2014年04月14日 22:36
  • 1182

【转载】smarty --foreach详解(不错不错)

温馨提示:内容是中英文对照写的,其中绿色字体是翻译后的Chapter 7. Built-in Functions 第7章 内建函数 {foreach},{foreachelse}用于像访问序数数组一样...
  • forest_fire
  • forest_fire
  • 2016年03月21日 10:48
  • 107

smarty调用php常量

{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量。例如,直接在模板中访问页面请求变量、获取访问模板时的时间戳、直接访问PHP中...
  • e421083458
  • e421083458
  • 2013年02月26日 10:24
  • 8595

视图引擎Smarty的简单使用

参考: http://www.jb51.net/article/5091.htm 参考:http://baike.baidu.com/link?url=FFySw2r-dsE-lTdQgGy2DpL...
  • qq_15096707
  • qq_15096707
  • 2016年03月03日 16:38
  • 871

MVC中使用smarty模板

Smarty模板的使用点击这里项目展示:基本思路: 下载smarty源代码,解压得到libs文件夹,然后重命名为smarty,存放到项目的libs目录下。 编写mySmarty.php,在该文件中完成...
  • koastal
  • koastal
  • 2016年05月18日 14:46
  • 1005

ThinkPHP框架使用Smarty模板引擎

ThinkPHP框架使用Smarty模板引擎 原文  http://phpquan.com/lamp/php/thinkphp-smarty/ 主题 ThinkPHP 最近公司使用Thi...
  • flowerspring
  • flowerspring
  • 2016年09月23日 15:45
  • 2794

【smarty】smarty中自定义函数和自定义块

一、直接在控制器里面自定义一个普通函数
  • yanhui_wei
  • yanhui_wei
  • 2013年05月10日 18:25
  • 3487

Smarty中的内建函数(一)config_load、foreach

1、capture 将模板输出的数据存放到一个变量里,不能嵌套,之间的内容 通过来访问 2、config_load 从配置文件读取变量 [html] ...
  • judyge
  • judyge
  • 2016年06月16日 22:22
  • 251

smarty入门教程三-------Smarty引擎的工作原理

1. Smarty的工作原理是:  Smarty自带
  • u012784277
  • u012784277
  • 2014年10月18日 10:09
  • 1515
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【转载】Smarty中Foreach的使用
举报原因:
原因补充:

(最多只允许输入30个字)