Smarty3——foreach
foreach and foreachelse篇
foreach用于遍历数组,可以是非关联数组,与section相比要简单些,在smarty3中可以接受没有名称的属性,也可以使用smarty2有名称的属性。与{section}*(只能循环连续的索引数组)相比较,{foreach}可以做任何{section}可以做到的因此也推荐使用{foreach}
- 可以嵌套循环
- 当foreach的值为空时,进行foreachelse运行
- 属性:
@index是当前数组索引,从0开始计算。
@iteration 是当前循环的次数,和index不同,他从 1 开始,在每次循环都会加1。
@first 当循环{foreach}
是首次循环时,first
将为TRUE
,
@ last 当{foreach}
循环到了最后一次时,last
将为TRUE
@show
@tottal 是整个{foreach}
循环的次数。 total可以在{foreach}
内部,或者之后使用 - 语法命令:{break}终止循环, {continue}将跳过当前本次循环并进入下一次循环
- 代替指定的 key 变量,可以通过{item@key}来使用当前循环的key
{foreach $arrayvar as $itemvar} {foreach $arrayvar as $keyvar=>$itemvar}
{foreach from=$foreach_else item=first_loops_element name=first_loops_name key=fisrt_loops_key}
{foreach} example
index.php:
$foreach_else = array(
'first_layout1' => array('second_layout1'),
'first_layout2' => array('second_layout2'),
'first_layout3' => array('second_layout3')
);
$res = array();
foreach.tpl: {foreach $foreach_else as $item}
第一次循环的键值:{$item@key}
<br>
{foreach $item as $value}
进入第二次循环:{$value@key}=>{$value}
<br>
{foreachelse}
this is the loop end
{/foreach}
{/foreach}
{foreach $res as $r}
{$r.id}
{$r.name}
{foreachelse}
.. no results ..
{/foreach}
then the result:
第一次循环的键值:first_layout1
进入第二次循环:0=>second_layout1
第一次循环的键值:first_layout2
进入第二次循环:0=>second_layout2
第一次循环的键值:first_layout3
进入第二次循环:0=>second_layout3
如果循环一个迭代器的话,比循环一个数组快。
@index
{foreach $connect_arr as $item}
{if $item@index eq 3}
输出 :{$item} {/if}
{foreachelse}
数组的索引小于 3
{/foreach}
@iteration
index.php:
$num_count = array(1, 2, 3, 4, 5, 6);
tpl.tpl
{foreach $num_count as $name}
{if $name@iteration is div by 4}
<b>{$name@iteration}</b>
{/if}
{$name}
{/foreach}
//is even/odd by 可以用于奇偶交错
$num_count = array(1, 2, 3, 4, 5, 6,7,8,);
{foreach $num_count as $name}
{if $name@iteration is even by 3}
<b>{$name}</b>
{else}
{$name}
{/if}
{/foreach}
Smarty3——foreach的更多相关文章
- Smarty3学习笔记
Smarty3 笔记 By 飞鸿影~ -- :: Smarty入门 1.什么是smarty? Smarty是采用php写的一个模版引擎,设计的目的是要将php代码与html代码分离, 使php程序员只 ...
- smarty3.0中文手册文档API及使用指南
1.安装Smarty3.0一.什么是smarty?smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变 ...
- Smarty3配置及入门语法
一.Smarty3配置 下载Smarty文件 在Smarty的官方网站下载Smarty文件,解压下载到的Smarty文件,Smarty的库文件就在libs文件夹中. 我使用的PHP调试环境的程序集成包 ...
- Smarty标签运算,控制结构[if,for,foreach,section,while]
Smarty标签运算: 在页面上做简单的运算[temp5.html] 条件判断if 循环结构 for foreach用得比较多,foreach例子从数据库取出的数据 section功能和foreach ...
- 8. Smarty3:模版中的内置函数
smarty3中对内置函数的修改比較大,加入了很多新的功能:变量声明.表达式,流程控制,函数.数组等.可是建议不要在模版中去使用过于复杂的逻辑,而是要尽量将一些程序设计逻辑写到PHP中,并在模版中採用 ...
- 先说IEnumerable,我们每天用的foreach你真的懂它吗?
我们先思考几个问题: 为什么在foreach中不能修改item的值? 要实现foreach需要满足什么条件? 为什么Linq to Object中要返回IEnumerable? 接下来,先开始我们的正 ...
- 了解PHP中的Array数组和foreach
1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组 . 2.例子:一般的数组 这里,我 ...
- 浅谈JavaScript中forEach与each
forEach是ES5中操作数组的一种方法,主要功能是遍历数组,例如: var arr = [1,2,3,4]; arr.forEach(alert); 等价于: var arr = [1, 2, 3 ...
- 《ES6基础教程》之 map、forEach、filter indexOf 用法
1,map,对数组的每个元素进行一定操作,返回一个新的数组. var oldArr = [{first_name:"Colin",last_name:"Toh" ...
随机推荐
- 开源的UML建模工具
StarUML 一个开源的UML建模工具 地址:http://staruml.sourceforge.net/en/ 效果图: 出处:http://www.cnblogs.com/zzy0471/ar ...
- 安卓apk包重复签名问题
安卓数字签名指的是对apk包做文件摘要并加密,在安装apk包时做解密和验证以保证包体不被篡改.这里先普及下签名和验证流程.签名文件保存在apk包里META-INF目录下,包含3个文件: 1.后缀为MF ...
- 从JVM的角度解析String
1. 字符串生成过程 我们都知道String s = "hello java";会将“hello java”放入字符串常量池,但是从jvm的角度来看字符串和三个常量池有关,clas ...
- Firewalld常用命令
原文地址:http://www.excelib.com/article/288/show Firewalld防火墙中所使用到的命令可以分为三大类:安装卸载.维护和策略操作. 安装 在Centos7中默 ...
- 2017中国大学生程序设计竞赛 - 女生专场 Deleting Edges(思维+最短路)
Deleting Edges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- 实例甜点 Unreal Engine 4迷你教程(3)之用C++改变Image小部件的其它属性
完成本迷你教程之前,请前往完成以下迷你教程: ·实例甜点 Unreal Engine 4迷你教程(2)之用C++改变Image小部件的颜色: 在上一次的迷你教程的LearnWidgets工程上进行(如 ...
- 怎么样使用yum来安装mysql
linux下使用yum安装mysql,以及启动.登录和远程访问. 1.安装 查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 查看有没 ...
- .Net 框架实现AOP(动态代理实现AOP,本文为翻译)
在上一节,我们将静态实现AOP,但是对于一个大型项目,要想为每个类,每个方法都去实现AOP ,进行日志记录和权限验证似乎是不可能的. 即使可能对于成百上千个类维护,也是很难维护.所以今天的主题就是如标 ...
- hadoop集群配置和在windows系统上运用java操作hdfs
安装 配置 概念 hadoop常用shell命令 使用java操作hadoop 本文介绍hadoop集群配置和在windows系统上运用java操作hdfs 安装 http://mirror.bit. ...
- Flask之邮件扩展
4.4 Flask—Mail 在开发过程中,很多应用程序都需要通过邮件提醒用户,Flask的扩展包Flask-Mail通过包装了Python内置的smtplib包,可以用在Flask程序中发送邮件. ...