您的位置:首页 > 其它

smarty中foreach和section的用法

2017-10-09 14:11 531 查看
foreach可以访问关联数组,section只能访问索引数组(默认键值从0开始)。

[索引数组键值是从0开始的整数,关联数组键值是字符串。]

samrty  foreach相关属性详解

{foreach  from=$myarray  key="mykey"  item="myitem"}

{/foreach}

{foreach  $myarray  as  $key=>$val}

    {$key:$val}

{foreachelse}

{/foreach}

{foreach  $myarray  as  $key=>$value  name=foo}

@index  获取当前循环的索引值,从0开始

  {if   $value@index  eq  1}

@iteration   获取循环发生的次数,从1开始计数,区别于index,每循环一次会自增一次

    {if  $value@iteration == 2}

@first 循环第一次

   {if  $value@first}

@last  循环最后一次新的foreach语法

   {if  $value@last}

{/foreach}

smarty  section属性详解

name : (必选) 是section循环的名称只是标志循环唯一的名字没有特别的意义,前面没有$符号

loop : (必选) 是在php声明的变量名称,用来标示是循环哪一个数组(即是循环数组名)需要使用$;

start : (可选) 循环执行的初始位置,如果该值为负数,开始位置从数组的尾部算起

step :(可选) 如其他语言的循环,是一个步长,如果步长为负数,则倒序循环。

max :(可选) 循环的最大小标,如果是1则只循环一次,如果为2则循环2次

index : 用于显示当前的索引,从0开始(如果指定了start属性,那么由该值开始),每次加1(如果指定了step属性,那么由该值决定),如果没有step和start属性,从0开始。

{section  name=len   loop=$arr}

    {if  $smarty.section.len.index == 0}

{sectionelse}

{/section}

iteration : 用于显示循环的次数,iteration不像index属性受start、step和max属性的影响,该值总是从1开始(index是从0开始的)

{section  name=len   loop=$arr  start=0   step=1   max=3}

     {if  $smarty.section.len.iteration == 1}

{/section}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: