lists 標簽主要用于在模板中循環輸出數據集或者多維數組。
# 1:普通輸出
然后我們在模版中定義如下代碼,循環輸出名言標題和IT名人:
~~~
<lists name="arrList" id="arrVo">
{$arrVo.title} {$arrVo.people}
</lists>
~~~
模板編譯后的結果:
~~~
<?php if( is_array ( $arrList ) ) : $index = 0; $arrList = $arrList; if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $arrVo ) : ++$index; $mod = ( $index % 2) ?>
<?php echo is_array( $arrVo ) ? $arrVo['title'] : $arrVo->title; ?> <?php echo is_array( $arrVo ) ? $arrVo['people'] : $arrVo->people; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
> 注意:list 標簽的 **name** 屬性表示模板賦值的變量名稱,因此不可隨意在模板文件中改變。**id** 表示當前的循環變量,可以隨意指定,但確保不要和name屬性沖突。
# 2:部分輸出
支持輸出部分數據,例如輸出其中的第 **2~4** 條記錄
~~~
<lists name="arrList" id="arrVo" offset="2" length='4'>
{$arrVo.title} {$arrVo.people}
</lists>
~~~
模板編譯后的結果:
~~~
<?php if( is_array ( $arrList ) ) : $index = 0; $arrList = array_slice( $arrList, 2, 4 ); if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $arrVo ) : ++$index; $mod = ( $index % 2) ?>
<?php echo is_array( $arrVo ) ? $arrVo['title'] : $arrVo->title; ?> <?php echo is_array( $arrVo ) ? $arrVo['people'] : $arrVo->people; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
# 3:輸出偶數記錄
lists 還支持按偶數輸出,例如,我們在模板中寫下如下的代碼:
~~~
<lists name="arrList" id="arrVo" mod="2">
<?php if ( $mod == 1 ) :?>
{$arrVo.title} {$arrVo.people}
<?php endif; ?>
</lists>
~~~
模板編譯后的結果:
~~~
<?php if( is_array ( $arrList ) ) : $index = 0; $arrList = $arrList; if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $arrVo ) : ++$index; $mod = ( $index % 2) ?>
<?php if ( $mod == 1 ) :?>
<?php echo is_array( $arrVo ) ? $arrVo['title'] : $arrVo->title; ?> <?php echo is_array( $arrVo ) ? $arrVo['people'] : $arrVo->people; ?>
<?php endif; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
# 4:輸出奇數記錄
lists 還支持奇數記錄的輸出:
~~~
<lists name="arrList" id="arrVo" mod="2">
<?php if ( $mod == 0 ) :?>
{$arrVo.title} {$arrVo.people}
<?php endif; ?>
</lists>
~~~
模板編譯后的結果:
~~~
<?php if( is_array ( $arrList ) ) : $index = 0; $arrList = $arrList; if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $arrVo ) : ++$index; $mod = ( $index % 2) ?>
<?php if ( $mod == 0 ) :?>
<?php echo is_array( $arrVo ) ? $arrVo['title'] : $arrVo->title; ?> <?php echo is_array( $arrVo ) ? $arrVo['people'] : $arrVo->people; ?>
<?php endif; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
> 說明:奇數記錄和偶數記錄規定如下,我們以數組的 0 為開始,0、2、4為偶記錄,其它的都為基數記錄。
# 5:控制換行
mod 屬性還用于控制一定記錄的換行,例如:
~~~
<lists name="arrList" id="arrVo" mod="2">
{$arrVo.title} {$arrVo.people}
<?php if( $mod == 0 ) : ?>
<br>
<?php endif; ?>
</lists>
~~~
模板編譯后的結果:
~~~
<?php if( is_array ( $arrList ) ) : $index = 0; $arrList = $arrList; if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $arrVo ) : ++$index; $mod = ( $index % 2) ?>
<?php echo is_array( $arrVo ) ? $arrVo['title'] : $arrVo->title; ?> <?php echo is_array( $arrVo ) ? $arrVo['people'] : $arrVo->people; ?>
<?php if( $mod == 0 ) : ?>
<br>
<?php endif; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
# 6:輸出循環變量
我們在模版中寫下如下的代碼:
~~~
<lists name="arrList" id="vo" index="k" >
{$k} {$vo.people}
</lists>
~~~
模板編譯后的結果:
~~~
<?php if( is_array ( $arrList ) ) : $k = 0; $arrList = $arrList; if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $vo ) : ++$k; $mod = ( $k % 2) ?>
<?php echo $k; ?> <?php echo is_array( $vo ) ? $vo['people'] : $vo->people; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
# 7:輸出數組的索引
如果要輸出數組的索引,可以直接使用 **key **變量,和循環變量不同的是,這個 key 是由數據本身決定,而不是循環控制的,這個 key 可以通過 key 屬性指定。
例如:
~~~
<lists name="arrList" id="vo" >
key: {$key}
</lists>
~~~
模板編譯后的結果:
~~~
<?php if( is_array ( $arrList ) ) : $index = 0; $arrList = $arrList; if( count( $arrList ) == 0 ) : echo ""; else : foreach ( $arrList as $key => $vo ) : ++$index; $mod = ( $index % 2) ?>
key: <?php echo $key; ?>
<?php endforeach; endif; else: echo ""; endif; ?>
~~~
> 注意:大家看到沒有,索引從 0 開始,而不是從 1 開始,這個是數組原始索引。
- 關于 QueryPHP
- 獲取 QueryPHP
- 環境要求
- 許可協議 Free
- 執行流程 MVC
- 命名規范 $sName
- 目錄結構 DIR
- 單一入口 index.php
- 響應客戶端請求 URL
- 命名空間與自動載入 Autoload
- 路由
- 路由導入
- 批量導入
- 參數正則
- 分組定義
- 路由綁定
- 路由域名
- 分層控制器
- 默認和初始化APP
- 默認控制器和方法
- url 模式
- url 生成
- url 偽靜態
- url 重寫
- url 重定向
- 控制器綁定
- 方法器分層
- 控制器 __init
- 控制器方法交互
- 模板引擎語法
- C變量輸出 $sName
- C變量支持函數和方法 $sName|trim
- C快捷輸出 ~
- C標簽簡化 Css & Javascript
- C默認值 eq 三元運算符
- C變量運算符 +-
- 變量遞增遞減 ++--
- C循環數據 list
- N變量賦值 assign
- N循環數據 list
- N循環數據高級版 lists
- C循環數據 while
- N循環數據 while
- C循環數據 for
- N循環數據 for
- C條件判斷 if
- N條件判斷 if
- 標簽嵌套無限層級
- N循環流程 break & continue
- N使用 PHP 代碼
- N包含子模板 include
- J模板引擎 intro
- J條件判斷 if
- J循環數據 each
- J變量 & 表達式
- J變量支持函數和方法 hello|test
- J默認值 eq 三元運算符
- J框架前端組件 jquery.queryphp.js
- J前端 CSS 規范
- J前端 JS 規范
- 保護標簽自身 tagself
- 數據庫
- 數據庫配置
- 執行原生 sql 語句
- 數據庫事務
- 數據庫構造器 prefix
- 數據庫構造器 table
- 數據庫構造器 forceIndex
- 數據庫構造器 where
- 數據庫構造器 bind
- 數據庫構造器 join
- 數據庫構造器 union
- 數據庫構造器 orderBy
- 數據庫構造器 groupBy
- 數據庫構造器 having
- 數據庫構造器 distinct
- 數據庫構造器 aggregate
- 數據庫構造器 limit
- 數據庫構造器 forUpdate
- 數據庫構造器 columns
- 數據庫構造器 reset
- 數據庫集合查詢
- 數據庫查詢數據 get
- 數據庫查詢多條數據 getAll
- 數據庫查詢單條數據 getOne
- 數據庫查詢聚合查詢 aggregate
- 數據庫寫入數據 insert
- 數據庫寫入數據 insertAll
- 配置
- 配置格式
- 慣性配置
- 配置文件
- 讀取配置
- 設置配置
- 刪除配置
- 日志
- 日志配置參數
- 日志路徑
- 日志過濾器
- 日志處理器
- 緩存
- 緩存配置參數
- 緩存路徑
- 緩存指定時間
- COOKIE
- COOKIE 配置參數
- 開發調試
- 頁面 trace