【smart原则】smarty 遍历数组之foreach,section实例

时间:2018-10-17  来源:smarty模板  阅读:

1,一维数组

 代码如下

    array ( 
      "0" => "home", 
      "1" => "who", 
      "2"=> "tank", 
      "3"=> "what" 
     ); 
    $this->tpl->assign("onearray", $this->onearray);


foreach来读取

 代码如下

    {foreach from=$onearray kkey=k item=value } 
    一维key={$k}  一维value={$value}
 
    {foreachelse} 
    nothing 
    {/foreach} 

    显示的结果是
    一维key=0 一维value=home
    一维key=1 一维value=who
    一维key=2 一维value=tank
    一维key=3 一维value=what

section来读取

 代码如下

    {section name=one loop=$onearray start=0 step=1} 
    index={$smarty.section.one.index}, 
    index_prev={$smarty.section.one.index_prev}, 
    index_next={$smarty.section.one.index_next}, 
    first={$smarty.section.one.first}, 
    last={$smarty.section.one.last}, 
    iteration ={$smarty.section.one.iteration}, 
    total={$smarty.section.one.total}, 
    value={$onearray[one]}
 
    {sectionelse} 
    nothing 
    {/section}

    显示的结果是
    index=0, index_prev=-1, index_next=1, first=1, last=, iteration =1, total=4, value=home
    index=1, index_prev=0, index_next=2, first=, last=, iteration =2, total=4, value=who
    index=2, index_prev=1, index_next=3, first=, last=, iteration =3, total=4, value=tank
    index=3, index_prev=2, index_next=4, first=, last=1, iteration =4, total=4, value=what


2,二维数组

 代码如下

    array ( 
      "test" => "home", 
      "2" => "who", 
      array ( 
       "上海", 
       "born" => "安徽", 
       "name" => "海底苍鹰" 
      ), 
      array ( 
       "1583456", 
       "fax" => "12345678", 
       "cell" => "13256478414" 
      ) 
     ); 
    $this->tpl->assign("twoarray", $this->twoarray); 


foreach

 代码如下

    {foreach from=$twoarray kkey=k item=value } 
    {if is_array($value)} 
     {foreach from=$value key=tk item=tv } 
      二维tkey={$tk}  二维value={$tv}
 
     {foreachelse} 
      二维数组为空 
     {/foreach} 
    {else} 
     一维key={$k}  一维value={$value}
 
    {/if} 
    
    {foreachelse} 
    nothing 
    {/foreach} 
    显示结果如下:
    一维key=test 一维value=home
    一维key=2 一维value=who
    二维tkey=0 二维value=上海
    二维tkey=born 二维value=安徽
    二维tkey=name 二维value=海底苍鹰
    二维tkey=0 二维value=1583456
    二维tkey=fax 二维value=12345678
    二维tkey=cell 二维value=13256478414


section

 代码如下

    {section loop=$twoarray name=two } 
    {if is_array($twoarray[two])} 
     {section loop=$twoarray[two] name=aaa } 
      二维tkey={$smarty.section.aaa.index}  二维value={$twoarray[two][aaa]}
 
     {sectionelse} 
      二维数组为空 
     {/section} 
    {else} 
     一维key={$smarty.section.two.index}  一维value={$twoarray[two]}
 
    {/if} 
    {sectionelse} 
    nothing 
    {/section} 
    显示结果如下:
    一维key=0 一维value=
    一维key=1 一维value=
    一维key=2 一维value=who
    二维tkey=0 二维value=上海
    二维tkey=1 二维value=
    二维tkey=2 二维value=


如果是一维数组,并且带有下标的话,并且不是按0,1,2这样的顺序的话就取不到东西。

 代码如下

    array ( 
    array ( 
     "name" => "tank", 
     "sex" => "男", 
     "old" => "28" 
    ), 
    array ( 
     "name" => "joyce", 
     "sex" => "女", 
     "old" => "111" 
    ) 
    ); 


section循环

 代码如下

    {section loop=$twoarray name=two} 
    name={$twoarray[two].name},sex={$twoarray[two].sex},old={$twoarray[two].old}
    {sectionelse} 
    nothing 
    {/section}

    显示结果
    name=tank,sex=男,old=28
    name=joyce,sex=女,old=111


section遍历多维数组

一个数组如下

 代码如下

    $array = array(array("uid" => 1,"name" => "name01","like"=>array("likenum"=>"4","likedata"=>array("小天","小陈"))),array("uid" => 2,"name" => "name02","like"=>array("likenum"=>"5","likedata"=>array("老天","老陈"))));
    Array
    (
       [0] => Array
           (
               [uid] => 1
               [name] => name01
               [like] => Array
                   (
                       [likenum] => 4
                       [likedata] => Array
                           (
                               [0] => 小天
                               [1] => 小陈
                           )

                   )

           )

       [1] => Array
           (
               [uid] => 2
               [name] => name02
               [like] => Array
                   (
                       [likenum] => 5
                       [likedata] => Array
                           (
                               [0] => 老天
                               [1] => 老陈
                           )

                   )

           )

    )


smarty中遍历数组

 代码如下

    {section name=feed loop=$arr}
               {$arr[feed].like.likedata.0}
               {/section}

【smart原则】smarty 遍历数组之foreach,section实例

http://m.bbyears.com/jiaocheng/45132.html

推荐访问:smarty模板引擎 smarty教程 smarty模板
相关阅读 猜你喜欢
本类排行 本类最新