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>和< ...
随机推荐
- 15Spring_AOP编程(AspectJ)_抛出通知
- JavaScript中浏览器兼容问题
浏览器兼容性问题是在实际开发中容易忽略而又最重要的一部分.我们在讲老版本浏览器兼容问题之前,首先要了解什么是能力检测,它是来检测浏览器有没有这种能力,即判断当前浏览器是否支持要调用的属性或者方法.下面 ...
- IP+IDC-chinaz抓取
#-*-coding:gbk-*- #code by anyun.org import urllib import re import time def getHtml(url): page = ur ...
- Qt——QLineEdit使用总结
QLineEdit是一个单行文本编辑控件. 使用者可以通过很多函数,输入和编辑单行文本,比如撤销.恢复.剪切.粘贴以及拖放等. 通过改变QLineEdit的 echoMode() ,可以设置其属性,比 ...
- wen7安装oracle 11g出现"未找到文件 E:\development_tools\database\oracle\install_d\dbhome\owb\external\oc4j_applications\applications\WFMLRSVCApp.ear"
从oracle官网上下载了window7 64位的oracle安装包win64_11gR2_database_1of2,安装后出现了错误: 解决方法:继续下载oracle官网上的文件2:win64_1 ...
- 分享我收集的引擎、图形学、WebGL方面的电子资料
本文分享我这一年以来收集的我认为比较经典的电子资料,希望能对大家有所帮助! 本文会不断更新! 目录 WebGL Insights OpenGL Insights Game Programming Pa ...
- Ajax基础详解2
沐晴又来更新啦,话说我们上回讲到Ajax中open方法的第三个参数异步和同步的问题,今天呢,就来继续往下唠,先接着上回的代码 var oBtn = document.getElementById('b ...
- unity3d 赛车游戏——复位点检测优化、反向检测、圈数检测、赛道长度计算
接着上一篇文章说 因为代码简短且思路简单 所以我就把这几个功能汇总为一篇文章 因为我之前就是做游戏外挂的 经过验证核实,**飞车的复位点检测.圈数检测就是以下的方法实现的 至于反向检测和赛道长度计算, ...
- 制衡技术,从Adblock所想到的
这是一个很特别的东西.可能已经有人发现了它,但是它并非被广泛接受. 对于这个技术的思考来源主要是在安装了Adblock后想到的.这种反作用力的技术,很可能是一片蓝海.而这种技术的产生及推广,对未来社会 ...
- WCF 入门(19)
前言 天气转凉,提前过冬了.感冒依旧没好,因为双休日伙食太好了,各种鱼各种肉. 第19集 创建然后抛出强类型的SOAP faults Creating and throwing strongly t ...