{foreach},{foreachelse} 循环
{foreach}是非常常用的循环标签,用于循环数组,或者循环对象。
格式如:
{foreach from=$list item=rs}{/foreach}
{foreach from=$list item=rs key=idx}{/foreach}
{foreach from=$list item=rs key=idx attr=attr}{/foreach}
参数名 | 类型 | 必需 | 说明 |
---|---|---|---|
from | any | Yes | 要遍历的数据 一般是数组 或者 对象 |
item | string | Yes | 遍历每项值的变量名称 |
key | string | No | 遍历每项键名的变量名称 |
attr | string | No | 用于读出每行属性的变量名称 |
Attr 属性介绍
$attr.index int 数组游标 从0开始。
$attr.iteration int 行号 从 1 开始。
$attr.first bool 是否第一行
$attr.last bool 是否最后一行
$attr.total int 数组长度。
{*遍历数组*}
{foreach from=[['id'=>1,'name'=>'wj008'],['id'=>2,'name'=>'wj354']] item=rs key=i}
<div>id:{$rs.id} name:{$rs.name} key:{$i}</div>
{/foreach}
{*遍历数组*}
{foreach from=['a'=>'a','b'=>2,'c'=>'cc','d'=>true] item=val key=key}
<div>key:{$key}</div>
<div>val:{$val}</div>
{/foreach}
{*遍历对象*}
{foreach from=$user item=val key=key}
<div>key:{$key}</div>
<div>val:{$val}</div>
{/foreach}
{*使用属性*}
<ul>
{foreach from=[['id'=>1,'name'=>'wj008'],['id'=>2,'name'=>'wj354'],['id'=>3,'name'=>'wj007']] item=rs key=i attr=p}
<li>
<div>共{$p.total}条,游标{$p.index},第{$p.iteration}条,{if $p.first}首行{/if}{if $p.last}尾行{/if}</div>
{foreach from=$rs item=val key=key}
<div> {$key}:{$val}</div>
{/foreach}
</li>
{/foreach}
</ul>
{*数据为空*}
{foreach from=[] item=rs}
<div>name:{$rs.name}</div>
{foreachelse}
没有任何数据
{/foreach}