foreach可以访问关联数组,section只能访问索引数组。
smarty foreach相关属性详解
{foreach from=$myarray key="mykey" item="myitem"}
{foreach $contact as $key => $value} {$key}: {$value} {/foreach}
{foreach $myPeople as $value} <li>{$value@key}: {$value}</li> {/foreach}
name
{foreach $arry as $key=>$value name=foo} <li {if $smarty.foreach.foo.index == 1} style="color:red" {/if}>{$value@key} : {$value}</li> {/foreach}
@index 获取当前循环的索引值,从0开始.
{foreach $arry as $key=>$value name=foo} <li {if $value@index eq 1} style="color:red" {/if}>{$value@key} : {$value}</li> {/foreach}
@iteration 获取循环发生的次数,从1开始计数,区别于index,每循环一次会自增一次
{foreach $arry as $key=>$value name=foo} <li {if $value@iteration==2} style="color:red" {/if}>{$value@key} : {$value}</li> {/foreach}
@first 循环第一次
{foreach $arry as $key=>$value name=foo} <li {if $value@first} style="color:red" {/if}>{$value@key} : {$value}</li> {/foreach}
@last 循环最后一次新的
foreach
语法
{foreach $arry as $key=>$value name=foo} <li {if $value@last} style="color:red" {/if}>{$value@key} : {$value}</li> {/foreach}
section属性
index:用于显示当前循环的索引,从0开始(如果指定了start属性,那么由该值开始),每次加1(如果指定了step属性,那么由该值决定).如果没有指定step和start属性,此值的作用和iteration类似,只不过从0开始而已.
{section name=len loop=$arry11} <div {if $smarty.section.len.index==0}style="color:red"{/if}>id: {$arry11[len]}</div> {/section}
iteration:用于显示循环的次数.iteration 不像index属性受start、step和max属性的影响,该值总是从1开始(index是从0开始的).rownum 是iteration的别名,两者等同.
{section name=len loop=$arry11 start=0 step=1 max=3 } <div {if $smarty.section.len.iteration==1}style="color:red"{/if}>id: {$arry11[len]}</div> {/section}