{foreach},{foreachelse} {foreach} 用于像循环访问一个数字索引数组一样循环访问一个关联数组,与仅能访问数字索引数组的{section}不同,{foreach}的语法比 {section}的语法简单得多,但是作为一个折衷方案也仅能用于单个数组。每个{foreach}标记必须与关闭标记{/foreach}成对出现。 属性 1、from 类型:array数组 必要性:Yes必要 默认值:n/a 描述:循环访问的数组 2、item 类型:string字符串 必要性:Yes必要 默认值:n/a 描述:当前元素的变量名 3、key 类型:string字符串 必要性:No可选 默认值:n/a 描述:当前键名的变量名 4、name 类型:string字符串 必要性:No可选 默认值:n/a 描述:用于访问foreach属性的foreach循环的名称 from和item是必要属性 示例: 例一. item属性 用模板以无序列表输出$myArray <ul> 上例将输出: <ul> 例二. 演示item和key属性 <?php 用模板按键名/键值对的形式输出$myArray, 类似于PHP的foreach。 <ul> 上例将输出: <ul> 例三. {foreach}的item属性是关联数组 <?php 模板中,url通过$myId输出$items <ul> 上例将输出: <ul> 例四. {foreach}使用嵌套的item和key 向Smarty设置一个数组,对于每个键名对应的每个循环值都包括键。 <?php 用于输出$contact的模板。 {foreach name=outer item=contact from=$contacts} 上例将输出: <hr /> 例五. 使用{foreachelse}的数据库示例 一个数据库(例如PEAR或ADODB)的搜索脚本示例, <?php 借助{foreachelse}标记在没有结果时模板输出"None found"字样。 {foreach key=cid item=con from=$results} 例六. index示例 {* 每五行输出一次头部区块 *} 例七. iteration和index示例 {* this will output 0|1, 1|2, 2|3, ... etc *} 例八. first属性示例 {* 对于第一个条目显示LATEST而不是id *} 例九. last属性示例 {* 在列表结束时增加一个水平标记 *}) total包括{foreach}将循环的次数,既可以在{foreach}中使用,也可以在之后使用。 例十. total属性示例 {* 在结束位置显示行数 *} 问题 {foreach from=$custid item=curr_id key=num}
|