Smarty Foreach 使用说明


Posted in PHP onMarch 23, 2010

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}
PHP 相关文章推荐
IIS+PHP+MySQL+Zend配置 (视频教程)
Dec 13 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
Jun 18 PHP
php使用date和strtotime函数输出指定日期的方法
Nov 14 PHP
PHP中常用的字符串格式化函数总结
Nov 19 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
Nov 20 PHP
一个非常完美的读写ini格式的PHP配置类分享
Feb 12 PHP
PHP中的traits简单使用实例
May 13 PHP
CI框架的安全性分析
May 18 PHP
php 判断字符串编码是utf-8 或gb2312实例
Nov 01 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
Jan 15 PHP
用php或asp创建网页桌面快捷方式的代码
Mar 23 #PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
Mar 23 #PHP
PHP提取数据库内容中的图片地址并循环输出
Mar 21 #PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
Mar 21 #PHP
PHP中10个不常见却非常有用的函数
Mar 21 #PHP
初次接触php抽象工厂模式(Elgg)
Mar 21 #PHP
PHP5与MySQL数据库操作常用代码 收集
Mar 21 #PHP
You might like
无数据库的详细域名查询程序PHP版(3)
2006/10/09 PHP
php的一个登录的类 [推荐]
2007/03/16 PHP
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
php 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
php输出xml属性的方法
2015/03/19 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
vue中使用[provide/inject]实现页面reload的方法
2019/09/30 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
2020/11/17 Vue.js
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
python实现学生信息管理系统
2020/04/05 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
Python wordcloud库安装方法总结
2020/12/31 Python
python爬取微博评论的实例讲解
2021/01/15 Python
is_file和file_exists效率比较
2021/03/14 PHP
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
经典导游欢迎词大全
2014/01/16 职场文书
项目投资意向书
2014/04/01 职场文书
片区教研活动总结
2014/07/02 职场文书
民族学专业求职信
2014/07/28 职场文书
单位活动策划方案
2014/08/17 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
先进班组材料范文
2014/12/25 职场文书
邀请函格式范文
2015/02/02 职场文书
2015年女生节活动总结
2015/02/27 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
2022年显卡天梯图(6月更新)
2022/06/17 数码科技