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" ...
随机推荐
- 【java规则引擎】drools6.5.0版本api简介
在有些术语使用的时候,我有时候会用KIE项目.KIE引擎或者Drools项目.Drools引擎,大家应该理解KIE是Drools等项目的一个统称,所以在大多数情况下KIE或者特指Drools都是差不多 ...
- LG3628 [APIO2010]特别行动队
题意 你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号,要将他们拆分 成若干特别行动队调入战场.出于默契的考虑,同一支特别行动队中队员的编号 应该连续,即为形如(i, i + 1, . ...
- CentOS虚拟机中安装VMWare Tools
1.单击VMWare的[虚拟机]菜单,选择[安装VMWare Tools]命令 2.接着CentOS系统会自动挂载VMWare Tools,并自动打开,如果没有打开可以自己去图形界面打开VMWare ...
- CF 1088(A , B , C , D)——思路
http://codeforces.com/contest/1088 A:Ehab and another construction problem 输出 2 和 n(偶数的话)或者 2 和 n-1( ...
- bzoj 3796 Mushroom追妹纸——后缀数组
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3796 长度一般都是 1e5 ,看这个是 5e4 ,一看就是把两个串接起来做. 自己本来想的是 ...
- Java-Runoob:Java 简介
ylbtech-Java-Runoob:Java 简介 1.返回顶部 1. Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java ...
- Java-Maven-Runoob:Maven 快照(SNAPSHOT)
ylbtech-Java-Maven-Runoob:Maven 快照(SNAPSHOT) 1.返回顶部 1. Maven 快照(SNAPSHOT) 一个大型的软件应用通常包含多个模块,并且通常的场景是 ...
- thinkphp中的dump方法
感受一下,调试. 1.print_r() 2.var_dump() 3.再看看thinkphp中的dump方法 清晰多了!真实够傻的,今天才发现有这么好的调试方法.
- php中,如何将编译后的代码,反编译回去。
编译后 <?php /*********************/ /* */ /* Version : 5.1.0 */ /* Author : RM */ /* Comment : 0712 ...
- MySQL写出高效SQL
mysql设计标准事务处理标准索引使用标准约束设计sql语句标准 怎么写出高效SQL清晰无误的了知业务需求满足业务需求,不做无用功知道表数据量和索引基本情况知道完成SQL需要扫描的数据量级SQL执行计 ...