首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Smarty foreach 迴圈控制變數與限制顯示筆數技巧

     編輯:PHP 綜合知識

foreach 內建控制變數

在 {foreach} 區塊內可透過 $smarty.foreach.名稱.屬性 存取:

屬性說明
index當前索引(0 起算)
iteration當前迴圈次數(1 起算)
first首次迴圈為 true
last最後一次迴圈為 true
show是否顯示(受 {foreachelse} 影響)
total總迴圈次數

語法範例

{foreach from=$VIDEO_INFO_LIST item=infolist name=infolist}
    {$VIDEO_INFO_LIST|@count}          {* 陣列長度 *}
    {$smarty.foreach.infolist.index}   {* 0-based 索引 *}
    {$smarty.foreach.infolist.iteration} {* 1-based 次數 *}
    {$smarty.foreach.infolist.first}   {* 首筆 *}
    {$smarty.foreach.infolist.last}    {* 尾筆 *}
    {$smarty.foreach.infolist.total}   {* 總筆數 *}
{/foreach}

限制顯示前 N 筆

方法一:判斷 iteration

{foreach from=$VIDEO_INFO_LIST item=infolist name=infolist}
    {if $smarty.foreach.infolist.iteration <= 5}
        <li>{$infolist}</li>
    {/if}
{/foreach}

方法二:使用 index(0-based)

{foreach from=$VIDEO_INFO_LIST item=infolist name=infolist}
    {assign var=floor value=$smarty.foreach.infolist.index}
    {if $floor < 5}
        <li>{$infolist}</li>
    {/if}
{/foreach}

方法三:PHP 端預先切片(推薦,邏輯與顯示分離)

<?php
$displayList = array_slice($VIDEO_INFO_LIST, 0, 5);
$smarty->assign('displayList', $displayList);
?>
{foreach from=$displayList item=infolist}
    <li>{$infolist}</li>
{/foreach}

進階:分頁配合

{* 假設 $page 當前頁 $perPage 每頁筆數 *}
{foreach from=$list item=row name=pager}
    {if $smarty.foreach.pager.iteration > ($page-1)*$perPage && $smarty.foreach.pager.iteration <= $page*$perPage}
        <div>{$row.title}</div>
    {/if}
{/foreach}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved