Smarty模板技术之foreach遍历数组实例全面讲解
一、item属性用法 <?php
$arr = array(, , );
$smarty->assign('testarrg', $arr);
?> 用Smarty中的foreach方法来遍历并输出这个数组 <dl>
<dt>foreach中item属性用法</dt>
{foreach from=$testarrg item=test}
<dd>{$test}</dd>
{/foreach}
</dl> 通过上面的将输出: <dl>
<dt>foreach中item属性用法</dt>
<dl></dl>
<dl></dl>
<dl></dl>
</dl>
二、关于item和key属性的演示 <?php
$arr = array( => 'test1', => 'test2', => 'test3');
$smarty->assign('testarray', $arr);
?> 上面的实例是按照数组的键/值对形式的 用模板按键名/键值对的形式输出$testarray, 类似于PHP的foreach。 <dl>
<dt>foreach中item和key属性用法</dt>
{foreach from=$testarray key=key item=value}
<dd>{$key}: {$value}</dd>
{/foreach}
</dl> 上面的例子中将输出: <dl>
<dt>foreach中item和key属性用法</dt>
<dd>: test1</dd>
<dd>: test1</dd>
<dd>: test2</dd>
</dl>
三、关于{foreach}中的item属性是关联数组的演示案例 <?php
$test_list=array(=>array('a'=>, 'b'=>'testok'),
=>array('a'=>, 'b'=>'oktest'));
$smarty->assign('arr_item', $test_list);
?>
在TPL模板中写入foreach循环的方法
<ul>
{foreach from=$test_list key="key" item="val"}
<li>{$val.a}: {$val.b}</li>
{/foreach}
</ul>
上例将输出: <ul>
<li>: testok</li>
<li>: oktest</li>
</ul>
四、{foreach}使用嵌套的item和key Assign an array to Smarty, the key contains the key for each looped value. 向Smarty设置一个数组,对于每个键名对应的每个循环值都包括键。
<?php
$_arrg=array(array('photo'=>, 'phfax'=>, 'phcell'=>),
array('phone'=>'Hello', 'fax'=>'Word', 'cell'=>'Hess'));
$smarty->assign('arrg', $_arrg);
?> 用foreach向输模板中输出 {foreach name="outgow" item="ct" from=$arrg}
<hr />
{foreach key="keys" item="ims" from=$arrg}
{$keys}: {$ims}<br />
{/foreach}
{/foreach} 上例将输出: <hr />
photo: <br />
phfax: <br />
phcell: <br />
<hr />
phone: Hello<br />
fax: Word<br />
cell: Hess<br />
五、关于foreach的属性index的用法 {* 三行就输出一次头部 *}
<table width="" boder="">
{foreach from=$items key=myId item="is" name="fot"}
{if $smarty.foreach.fot.index % == } //除3余数0
<tr><th>文章标题</th></tr>
{/if}
<tr><td>{$is.label}</td></tr>
{/foreach}
</table>
六、关于foreach的属性iteration的用法 iteration显示当前循环次数,它和index属性不同,它是每次从1开始,每次循环增长1。 www.it165.net {foreach from=$myArray item=i name=foo}
{$smarty.foreach.foo.index}|{$smarty.foreach.foo.iteration},
{/foreach}
七、关于foreach的属性first的用法 first属性在foreach循环第一次执行时返回真 {* 对于第一个条目显示LATEST而不是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>
八、关于foreach的属性last的用法 lase属性在foreach循环最后一次执行时返回真 {* 在列表结束时增加一个水平标记 *})
{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}
九、关于foreach的属性show的用法 show属性返回的是一个布尔值,当它为真(ture)的时候,该循环就显示,它不为假(false)的时候该循环就不显示。
Smarty模板技术之foreach遍历数组实例全面讲解的更多相关文章
- forEach遍历数组实例
forEach()取出数组中2的倍数和3的倍数的数 //for IE if(!Array.prototype.forEach){ Array.prototype.forEach = function( ...
- smarty详细使用教程(韩顺平smarty模板技术笔记)
MVC是一种开发模式,强调数据的输入.处理.显示是强制分离的 Smarty使用教程1.如何配置我们的smarty解压后把libs文件夹放在网站第一级目录下,然后创建两个文件夹templates 存放模 ...
- Smarty模板技术学习
模板引擎技术:使得php代码和html代码分离的技术就称为"模板引擎技术" 自定义smarty模板技术实现 <?php //迷你smarty原理 class MiniSmar ...
- forEach遍历数组对象且去重
forEach遍历数组对象 var obj1 = [{ key: '01', value: '哈哈' }, { key: '02', value: '旺旺' }, { key: '03', value ...
- Smarty模板技术学习(二)
本文主要包括以下内容 公共文件引入与继承 内容捕捉 变量调剂器 缓存 Smarty过滤器 数据对象.注册对象 与已有项目结合 公共文件引入与继承 可以把许多模板页面都用到的公共页面放到单独文件里边,通 ...
- smarty模板技术
一.什么是smarty?smarty是一个使用php写出来的模板php模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用php程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美 ...
- foreach遍历数组、数组的转置与方阵的迹
public class Copy1 { public static void main(String[] args) { array1(); //如果不初始化元素,默认为0 int [][] a = ...
- 用数组指针遍历数组,FOR/FOREACH遍历数组
1. 用数组指针遍历一维数组 <?php header("Content-type:text/html;charset=utf-8"); /*用数组指针遍历一位数组的值*/ ...
- 四,Smarty模板技术/引擎-----内建函数
内建函数是smarty提供的函数,不允许修改,只能被调用: 自定义函数是自己编写函数,注册成为smarty的函数,之后可以被调用. PHP的自建函数很多,讲解下<foreach>和< ...
随机推荐
- 《JAVA与模式》之适配器模式(转)
在阎宏博士的<JAVA与模式>一书中开头是这样描述适配器(Adapter)模式的: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能 ...
- 【WPF】FillRule
获取或设置如何组合此 GeometryGroup 中所包含对象的相交区域. Dependency property identifier field: FillRuleProperty FillRul ...
- Python中的sort()方法使用基础
一.基本形式 sorted(iterable[, cmp[, key[, reverse]]]) iterable.sort(cmp[, key[, reverse]]) 参数解释: (1)itera ...
- HttpClient通过Post上传文件(转)
在之前一段的项目中,使用Java模仿Http Post方式发送参数以及文件,单纯的传递参数或者文件可以使用URLConnection进行相应的处理. 但是项目中涉及到既要传递普通参数,也要传递多个文件 ...
- Oracle数据库,数字强制显示2位小数(转)
Oracle数据库,数字强制显示2位小数 在银行.财务等对数字要求敏感的系统中,数字的显示一般有着严格的要求.今遇到一个需求,如题,要求将数字以两位小数的格式显示,如果没有小数,则强制显示为0.例如: ...
- 【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布
去年就知道有这个功能,不过没去深究总结过,最近有写网络博客的欲望了,于是又重新拾起这玩意儿. 具体到底是用Windows Live Writer 2012还是用Word 2013,个人觉得看个人,因为 ...
- ViewConfiguration.getScaledTouchSlop () 用法
getScaledTouchSlop是一个距离,表示滑动的时候,手的移动要大于这个距离才开始移动控件.如果小于这个距离就不触发移动控件,如viewpager就是用这个距离来判断用户是否翻页 ViewC ...
- Java系列:关于Java中的桥接方法
这两天在看<Java核心技术 卷1>的泛型相关章节,其中说到了在泛型子类中override父类的泛型方法时,编译器会自动生成一个桥接方法,这块有点看不明白. 书上的例子代码如下: publ ...
- [MySQL] 按日期进行统计(前一天、本周、某一天)
在mysql数据库中,常常会遇到统计当天的内容.例如,在user表中,日期字段为:log_time统计当天 sql语句为: select * from user where date(log_time ...
- Github克隆别人的库
一. 首先在网站上进入别人的库(通过别人提供的链接或者自己在页面上查询),然后在右下方选择SSH,将链接复制下来. 二. 在你的电脑上新建一个与人家库名相同的文件夹,然后在文件夹上右击,在弹出菜单上选 ...