夺命雷公狗---Smarty NO:12 section函数

功能:实现对数组的遍历操作

注:其只能遍历索引下标从0开始且连续的索引型数组

基本语法:

{section name=名称 loop=循环数组(次数) start=开始(0) step=步阶(1) max=最大循环次数}
{sectionelse}

{/section}

loop:要遍历的数组

name:section名称,每次遍历时,系统会自动将数组的索引小标放入name中

start:从哪个索引开始遍历

step:步阶,默认为1

max:循环最大次数

sectionelse :当数组为空时,系统自动执行此句

例1:遍历一维数组

demo5.html代码示例

<!DOCTYPE html>
<html>
<head>
<meta charset=’utf-8′>
<title></title>
</head>
<body>
{*遍历一堆数组*}
{section loop=$lamp name=’sec1′}
{$lamp[sec1]}
{/section}
</body>
</html>

demo5.php代码示例

<?php
require “smarty/Smarty.class.php”;
$smarty = new Smarty();
$lamp = array(‘php’,’mysql’,’apache’,’linux’);
$smarty -> assign(‘lamp’,$lamp);
$smarty -> display(“demo5.html”);

在php中有两种数组的遍历方式

for($i=0;$i<count($arr);$i++) {

echo $arr[$i];

}

foreach($arr as $row) {

echo $row;

}

foreach(foreach)是真正完成了对数组的遍历,而for(section)循环只是对数组循环输出而已。

例2:遍历二维数组

 
{*遍历二维数组*}
{section loop=$persons name=’sec2′}
{$persons[sec2][‘name’]}—{$persons[sec2][‘age’]}—{$persons[sec2][‘sex’]}<hr/>
{/section}

例3:sectionelse的使用

{*sectionelse*}
{section loop=$var name=’sec3′}
{$var[sec3]}
{sectionelse}
未查询到相关记录
{/section}

例4:其他属性的使用

{*其他属性的使用*}
{section loop=$lamp name=’sec4′ start=1 step=2 max=1}
{$lamp[sec4]}<hr/>
{/section}

例5:附加属性

{$smarty.section.name.index} :循环索引,默认从0开始

{$smarty.section.name.index_prev} :上一次循环索引,默认从-1开始

{$smarty.section.name.index_next} :下一次循环索引

{$smarty.section.name.iteration} :当前是第几次循环

{$smarty.section.name.first} :当第一次运行时条件为真

{$smarty.section.name.last} :当最后一次循环条件为真

{$smarty.section.name.total} :循环的总次数

示例代码:

{*附加属性的使用*}
{section loop=$lamp name=’sec5′}
{$smarty.section.sec5.iteration},{$lamp[sec5]}<hr/>
{/section}
当前总共有{$smarty.section.sec5.total}条记录

section的总代码如下

demo5.html代码示例

<!DOCTYPE html>
<html>
<head>
<meta charset=’utf-8′>
<title></title>
</head>
<body>
{*遍历一堆数组*}
{section loop=$lamp name=’sec1′}
{$lamp[sec1]}<hr/>
{/section}
{*遍历二维数组*}
{section loop=$persons name=’sec2′}
{$persons[sec2][‘name’]}—{$persons[sec2][‘age’]}—{$persons[sec2][‘sex’]}<hr/>
{/section}
{*sectionelse*}
{section loop=$var name=’sec3′}
{$var[sec3]}
{sectionelse}
未查询到相关记录
{/section}
<hr/>
{*其他属性的使用*}
{section loop=$lamp name=’sec4′ start=1 step=2 max=1}
{$lamp[sec4]}<hr/>
{/section}
{*附加属性的使用*}
{section loop=$lamp name=’sec5′}
{$smarty.section.sec5.iteration},{$lamp[sec5]}<hr/>
{/section}
当前总共有{$smarty.section.sec5.total}条记录
</body>
</html>

demo5.php代码示例

<?php
require “smarty/Smarty.class.php”;
$smarty = new Smarty();
$lamp = array(‘php’,’mysql’,’apache’,’linux’);
$persons = array(
array(‘name’=>’lisi’,’age’=>’66’,’sex’=>’nan’),
array(‘name’=>’xiaohong’,’age’=>’99’,’sex’=>’nv’),
array(‘name’=>’xiaoqing’,’age’=>’88’,’sex’=>’nv’),
array(‘name’=>’zhangfei’,’age’=>’22’,’sex’=>’nan’),
);
$var = ”;
$smarty -> assign(‘lamp’,$lamp);
$smarty -> assign(‘persons’,$persons);
$smarty -> assign(‘var’,$var);
$smarty -> display(“demo5.html”);
原文地址:https://www.cnblogs.com/leigood/p/5033334.html