smarty 遍歷陣列之foreach,section例項
阿新 • • 發佈:2018-12-23
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}<br />
{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]}<br />
{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}<br />
{foreachelse}
二維陣列為空
{/foreach}
{else}
一維key={$k} 一維value={$value}<br />
{/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]}<br />
{sectionelse}
二維陣列為空
{/section}
{else}
一維key={$smarty.section.two.index} 一維value={$twoarray[two]}<br />
{/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