Smarty Foreach 使用說明_PHP教程

來源:互聯網
上載者:User
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}

{/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}

{/foreach}
{/foreach}

輸出結果:
phone: 1
fax: 2
cell: 3
phone: 555-4444
fax: 555-3333
cell: 760-1234

.index
index 包含當前數組索引,從"0"開始
例如:
複製代碼 代碼如下:







{foreach from=$items key=myId item=i name=foo} {if $smarty.foreach.foo.index % 5 == 0} {* $smarty.foreach.foo.index 對 5 求餘 *} {/if} {/foreach}
Title
{$i.label}


.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 *}







{foreach from=$items key=myId item=i name=foo} {/foreach}
{if $smarty.foreach.foo.first}LATEST{else}{$myId}{/if} {$i.label}


.last
當前 foreach 迴圈執行到最後一遍時 last 被設定成 true.
例如:
複製代碼 代碼如下:
{* 在列表最後添加水平線 *}
{foreach from=$items key=part_id item=prod name=products}
{$prod}{if $smarty.foreach.products.last}{else},{/if}
{foreachelse}
... content ...
{/foreach}

.total
total 用於顯示迴圈執行的次數,可以在迴圈中或迴圈執行後調用.
例如:
複製代碼 代碼如下:
{* 在最後顯示行數 *}
{foreach from=$items key=part_id item=prod name=foo}
{$prod.label}
{if $smarty.foreach.foo.last}
{$smarty.foreach.foo.total} items
{/if}
{foreachelse}
... something else ...
{/foreach}

http://www.bkjia.com/PHPjc/321472.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/321472.htmlTechArticleforeach 是除 section 之外處理迴圈的另一種方案(根據不同需要選擇不同的方案)。 foreach 用於處理簡單數組(數組中的元素的類型一致),它的格...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.