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>和< ...
随机推荐
- Http请求中POST与GET的区别——前端面试
一.原理区别 Http定义了与服务器交互的方法,其中最基本的四种是:GET,POST,PUT,DELETE,正对应着对资源的查,改,增,删.URL的全称是资源描述符,我们可以这样认为,一个URL地址, ...
- 好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)
转载:http://www.cnblogs.com/lyhabc/p/3322437.html 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 这个工具主要就是 ...
- OAF页面隐藏右上角的全局按钮(主页,注销等)
OAPageLayoutBean page = pageContext.getPageLayoutBean(); page.prepareForRendering(pageContext); page ...
- 做leetcode的几点体会分享(转)
1 大部分题目你都是可以自己做出来的.所以,第一遍尽量不要网上找答案: 2 写了的不管通过的,不通过的答案要保存下来.不通过的,也要记录下来哪儿没有通过.很有可能你这次错了,不知道怎么搞过了,下次还是 ...
- 学习笔记——Maven实战(四)基于Maven的持续集成实践
Martin的<持续集成> 相信很多读者和我一样,最早接触到持续集成的概念是来自Martin的著名文章<持续集成>,该文最早发布于2000年9月,之后在2006年进行了一次修订 ...
- C#Json序列化和反序列化
1.动态决定数据是否要序列化 我的需求是这样的,我用了一款数据库的组件叫Dos.ORM,确实方便了不少,但是在用的时候,我发现一个问题,比如我定义的表中有一个字段添加时间,修改时间,这些都是默认的,在 ...
- SequoiaDB 系列之一 :SequoiaDB的安装、部署
在分析或者参与一个开源项目之前,了解项目构建的目的是有必要的. 既然SequoiaDB是NoSQL数据库产品,则必然存在于传统关系型数据库相同的功能点:数据的增.删.改和查询(CRUD). 先了解怎么 ...
- HOW TO REMOTELY DEBUG APPLICATION RUNNING ON TOMCAT FROM WITHIN INTELLIJ IDEA
This post would look into how to tackle and debug issues in scenarios where they only occur in produ ...
- 每天一个linux命令(21):tar命令
通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar 命令可以为linu ...
- Ibatis中传List参数
Ibatis中用list传参数的方式. Java代码 select count(id) from `user` where id in #[]# and status=1 . <select ...