Smarty模板技术之foreach遍历数组实例全面讲解

摘要:
˃用Smarty中的foreach方法来遍历并输出这个数组foreach中item属性用法{foreachfrom=$testarrgitem=test}{$test}{/foreach}通过上面的将输出:foreach中item属性用法6008517412二、关于item和key属性的演示上面的实例是按照数组的键/值对形式的用模板按键名/键值对的形式输出$testarray,类似于PHP的foreach。˃在TPL模板中写入foreach循环的方法{foreachfrom=$test_listkey="key"item="val"}{$val.a}:{$val.b}{/foreach}上例将输出:1256:testok8959:oktest四、{foreach}使用嵌套的item和keyAssignanarraytoSmarty,thekeycontainsthekeyforeachloopedvalue.向Smarty设置一个数组,对于每个键名对应的每个循环值都包括键。
一、item属性用法

<?php
$arr = array(600, 851, 7412);
$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>600</dl>
<dl>851</dl>
<dl>7412</dl>
</dl>二、关于item和key属性的演示

<?php
$arr = array(1 => 'test1', 2 => 'test2', 3=> '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>1: test1</dd>
<dd>2: test1</dd>
<dd>3: test2</dd>
</dl>三、关于{foreach}中的item属性是关联数组的演示案例

<?php
$test_list=array(10=>array('a'=>1256, 'b'=>'testok'),
11=>array('a'=>8959, '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>1256: testok</li>
<li>8959: oktest</li>
</ul>四、{foreach}使用嵌套的item和key
 

Assign an array to Smarty, the key contains the key foreach looped value.

向Smarty设置一个数组,对于每个键名对应的每个循环值都包括键。
<?php
$_arrg=array(array('photo'=>100, 'phfax'=>200, 'phcell'=>300),
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: 100<br />phfax: 200<br />phcell: 300<br />
<hr />phone: Hello<br />fax: Word<br />cell: Hess<br />五、关于foreach的属性index的用法

{* 三行就输出一次头部 *}
<table width="500" boder="1">{foreach from=$items key=myId item="is" name="fot"}
{if $smarty.foreach.fot.index % 3 == 0} //除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遍历数组实例全面讲解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java分布式系统高并发解决方案dart 自己写一个简单的文件编码器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

手把手教你Smarty缓存技术(转)

大家应该知道缓存机制能能有效的减轻网站的服务器压力,Smarty模板引擎的一大亮点就是为我们提供了非常简单的缓存操作,下面就让我们学习一下。 首先我们要知道Smarty缓存机制分为全局缓存,部分缓存,局部缓存三种,我们一一介绍。 1、全局缓存 顾名思义,全局缓存就是为整个网站的全部页面都生成缓存页面。 首先我们要操作smarty的配置文件,开启缓存,指定缓...

smarty小技巧之6个标签

1,capture标签 capture的中文意思是抓取,它的作用是抓取模板输出的数据,当我们需要它的时候,调用它,以得到抓取数据的目的。例子: {capture name=test} <img src=”testimg.jpg”> {/capture} <div class=”image”> {$smarty.capture.t...

php性能调优

第一章  针对系统调用过多的优化 我这次的优化针对syscall调用过多的问题,所以使用strace跟踪apache进行分析。 1.  apache2ctl -X & 使用-X(debug)参数启动httpd进程,这个时候只启动1个httpd进程 2. ps -ef | grep httpd 找到需要strace的pid 3. strace -p...

Smarty 函数

html_checkboxes 自定义函数 html_checkboxes 根据给定的数据创建复选按钮组. 该函数可以指定哪些元素被选定. 要么必须指定 values 和 ouput 属性,要么指定 options 替代. 所有的输出与 XHTML 兼容 html_checkbox用来用给定的数据创建checkbox。name表示checkbox的...

PHP-深入学习Smarty

本文中的边界标签分别为"<{"和"}>" start-12, 都是静态模板中的内容, 即使函数也只是模板中的标签或者变量调解器; 13-end, 都是smarty对象的方法和属性 表达式中不能乱使用空格 1.注释   <{* 我是注释内容 *}> //相当于PHP的注释, 而不是HTML文件的注释, 所以不会出现在页面源码中 2.函...

php面试题2018

一 、PHP基础部分 1、PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows、Linux等)上配置,不受操作系统的限制,所以叫跨平台 2、WEB开发中数据提交方式有几种?有什么区别?百度使用哪种方式? Get与post两种方式区别:(1)url可见性:g...