夺命雷公狗---Smarty NO:10 foreach数组的遍历

功能:主要实现对数组的遍历输出

基本语法:

foreach,foreachelse

{foreach from=数组 key=键 name=名称 item=内容 }

{foreachelse}

{/foreach}

from:要遍历输出的数组

item:每次遍历时,系统会自动将遍历的结果放入item内容中

key:键值,每次遍历时,系统会将遍历的键值放入key中

name:foreach名称,为foreach起名

foreachelse:当数组为空时,执行此句

demo4.html示例代码

<!DOCTYPE html>
<html>
<head>
<meta charset=’utf-8′>
<title></title>
</head>
<body>
{*一维数组*}
{foreach from=$lamp item=’val’}
{$val}<hr/>
{/foreach}
{*二维数组*}
{foreach from=$persons item=’row’}
{$row[‘name’]}–{$row[‘age’]}–{$row[‘sex’]}
<hr/>
{/foreach}
{*其他参数的使用*}
{foreach from=$lamp item=’val’ key=’k’}
{$k}:{$val}<hr/>
{/foreach}
{*附加属性*}
{foreach from=$persons item=’row’ name=’ps’}
{$smarty.foreach.ps.index}:{$smarty.foreach.ps.iteration}:{$row@index}:{$row@iteration}
{$row[‘name’]}-{$row[‘age’]}-{$row[‘sex’]}<HR/>
{/foreach}
单前总共有{$smarty.foreach.ps.total}条记录
</body>
</html>

demo4.php代码示例

<?php
require “smarty/Smarty.class.php”;
$smarty = new Smarty();
$lamp = array(‘php’,’mysql’,’apache’,’linux’);
$persons = array(
array(‘name’=>’lisi’,’age’=>’22’,’sex’=>’nan’),
array(‘name’=>’zhangsam’,’age’=>’33’,’sex’=>’nv’),
array(‘name’=>’wangwu’,’age’=>’44’,’sex’=>’yao’),
array(‘name’=>’jj’,’age’=>’16’,’sex’=>’nan’)
);
$smarty -> assign(‘lamp’,$lamp);
$smarty -> assign(‘persons’,$persons);
$smarty -> display(“demo4.html”);

例4:foreach附加属性

$smarty.foreach.name.index      @index :循环索引(默认从0开始)

$smarty.foreach.name.iteration   @iteration :循环迭代(当前是第几次循环)

$smarty.foreach.name.first       @first :当第一次循环时,此值为true

$smarty.foreach.name.last       @last :当最后一次循环时,此值为true

$smarty.foreach.name.total       @total :统计当前循环次数

{*附加属性*}
{foreach from=$persons item=’row’ name=’ps’}
{$smarty.foreach.ps.index}:{$smarty.foreach.ps.iteration}:{$row@index}:{$row@iteration}
{$row[‘name’]}-{$row[‘age’]}-{$row[‘sex’]}<HR/>
{/foreach}
单前总共有{$smarty.foreach.ps.total}条记录

示例代码:

原文地址:https://www.cnblogs.com/leigood/p/5033283.html