zoukankan      html  css  js  c++  java
  • (转)Smarty Foreach 使用说明

    foreach 是除 section 之外处理循环的另一种方案(根据不同需要选择不同的方案)。 foreach 用于处理简单数组(数组中的元素的类型一致),它的格式比 section 简单许多,缺点是只能处理简单数组。
     
     
    foreach 是除 section 之外处理循环的另一种方案(根据不同需要选择不同的方案)。 foreach 用于处理简单数组(数组中的元素的类型一致),它的格式比 section 简单许多,缺点是只能处理简单数组。 
    foreach 必须和 /foreach 成对使用,且必须指定 from 和 item 属性。 
    将 from 属性指定的数组中的数据遍历处理到 item 属性指定的变量中。 
    参考 foreach (array_expression as $key => $value) 
    from <=> array_expression;item <=> $value;key <=> $key。 
    name 属性可以任意指定(字母、数字和下划线的组合)。 
    foreach 可以嵌套,但必须保证嵌套中的 foreach 名称唯一。 
    from 属性(通常是数组)决定循环的次数。 
    foreachelse 语句在 from 属性没有值的时候被执行。(from 属性所指定的值为空时,可用 foreachelse 语句指定——否则-干什么) 
    foreach 循环有自己的变量名,使用该变量名可以访问该循环. 使用方法为 {$smarty.foreach.foreachname.varname},其中 foreachname 即在 foreach 中指定的 name 属性。 

    foreach 演示 
    {* 该例将输出数组 $custid 中的所有元素的值 *} 
    复制代码代码如下:

    {foreach from=$custid item=curr_id} 
    id: {$curr_id}<br> 
    {/foreach} 

    输出结果: 
    id: 1000 
    id: 1001 
    id: 1002 
    foreach 键的演示和嵌套的演示 
    {* 
    数组定义如下: 
    复制代码代码如下:

    $smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"), 
    array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234"))); 
    *} 
    {* 键就是数组的下标,请参看关于数组的解释 *} 
    {foreach name=outer item=contact from=$contacts} 
    {foreach key=key item=item from=$contact} 
    {$key}: {$item}<br> 
    {/foreach} 
    {/foreach} 

    输出结果: 
    phone: 1 
    fax: 2 
    cell: 3 
    phone: 555-4444 
    fax: 555-3333 
    cell: 760-1234 

    .index 
    index 包含当前数组索引,从"0"开始 
    例如: 
    复制代码代码如下:

    <table> 
    {foreach from=$items key=myId item=i name=foo} 
    {if $smarty.foreach.foo.index % 5 == 0} {* $smarty.foreach.foo.index 对 5 求余 *} 
    <tr><th>Title</th></tr> 
    {/if} 
    <tr><td>{$i.label}</td></tr> 
    {/foreach} 
    </table> 

    .iteration 
    iteration 包含当前循环的执行次数,总是从 1 开始,每执行一次自加 1。 
    例如: 
    复制代码代码如下:

    {* 输出 0|1, 1|2, 2|3, ... 等等 *} 
    {foreach from=$myArray item=i name=foo} 
    {$smarty.foreach.foo.index}|{$smarty.foreach.foo.iteration}, 
    {/foreach} 

    .first 
    当前 foreach 循环第一次执行时 first 被设置成 true。 
    例如: 
    复制代码代码如下:

    {* 当循环第一次执行时显示 LATEST , o 否则显示 id *} 
    <table> 
    {foreach from=$items key=myId item=i name=foo} 
    <tr> 
    <td>{if $smarty.foreach.foo.first}LATEST{else}{$myId}{/if}</td> 
    <td>{$i.label}</td> 
    </tr> 
    {/foreach} 
    </table> 

    .last 
    当前 foreach 循环执行到最后一遍时 last 被设置成 true. 
    例如: 
    复制代码代码如下:

    {* 在列表最后添加水平线 *} 
    {foreach from=$items key=part_id item=prod name=products} 
    <a href="#{$part_id}">{$prod}</a>{if $smarty.foreach.products.last}<hr>{else},{/if} 
    {foreachelse} 
    ... content ... 
    {/foreach} 

    .total 
    total 用于显示循环执行的次数,可以在循环中或循环执行后调用. 
    例如: 
    复制代码代码如下:

    {* 在最后显示行数 *} 
    {foreach from=$items key=part_id item=prod name=foo} 
    {$prod.label}<hr/> 
    {if $smarty.foreach.foo.last} 
    <div id="total">{$smarty.foreach.foo.total} items</div> 
    {/if} 
    {foreachelse} 
    ... something else ... 
    {/foreach} 
  • 相关阅读:
    May LeetCoding Challenge3 之 HashMap的使用
    May LeetCoding Challenge2 之 HashSet的使用
    May LeetCoding Challenge1 之 标准二分查找法
    30-Day Leetcoding Challenge Day21
    30-Day Leetcoding Challenge Day19
    30-Day Leetcoding Challenge Day18
    ALV 单元格编辑回车响应
    ALV模版1
    web dynpro 开发配置
    convert fm
  • 原文地址:https://www.cnblogs.com/wanshutao/p/4972288.html
Copyright © 2011-2022 走看看