foreach和volist的区别

1.foreach标签
foreach标签用于循环输出:
foreach(name,item,key)
name(必须):要输出的数据模板变量
item(必须):循环单原变量
key(可选):循环的key变量,默认值为key
示例:
<foreach name='list' item='vo'>
 {$vo.id}
 {$vo.name}
</foreach>
foreach标签相对于volist标签简洁,没有volist标签那么多功能。优势是可以对对象进行遍历输出,而volist标签通常是用于输出数组。

2.volist标签
volist标签主要用于在模板中循环输出数据集或者多维数组
volist(name,id,offset,length,key,mod,empty)
name(必须):要输出的数据模型变量
id(必须):循环变量
offset(可选):要输出数据的offset
length(可选):输出数据的长度
key(可选):循环的key变量,默认值为i
mod(可选):对key值取模,默认为2(用于偶数行查询等)
empty(可选):如果数据为空显示的字符串

通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。
在Action中首先对模板赋值:
$user=M('User');
$list=$user->select();
$this->assign('list',$list);
$this->display();
在模板定义如下,输出编号和姓名
<volist name='list' id='vo'>
 {$vo.id}
 {$vo.name}
</volist>
支持输出部分数据,例如输出其中的第5-15条记录:
<volist name='list' id='vo' offset='5' length='10'>
 {$vo.id}
 {$vo.name}
</volist>
输出偶数行记录:
<volist name='list' id='vo' mod='2'>
 <eq name="mod" value='1'>{$vo.name}</eq>
</volist>
mod属性还用于控制一定记录的换行:
<volist name='list' id='vo' mod='5'>
{$vo.name}
<eq name="mod" value='4'><br/></eq>
</volist>
输出循环变量:
<volist name='list' id='vo' key='k'>
{$k}.{$vo.name}
</volist>
如果没有指定key属性的话,默认使用循环变量i,例如:

<volist name="list" id="vo"  >

{$i}.{$vo.name}

</volist>

如果要输出数组的索引,可以直接使用key变量,和循环变量不同的是,这个key是由数据本身决定,而不是循环控制的,例如:

<volist name="list" id="vo"  >

{$key}.{$vo.name}

</volist>

volist还有一个别名iterate,用法和volist是一样。

从2.1版开始允许使用函数设定数据集,如:

<volist name=":fun('arg')" id="vo">{$vo.name}</volist>

来自http://blog.csdn.net/w1365966490/article/details/8949649

转载于:https://www.cnblogs.com/lovebing/p/7459154.html

foreach和volist的区别相关推荐

  1. [JS] for-each和map()的区别

    先说下for-each与for-of还有for-in的区别. for-of和for-in都是对对象操作的,而for-each和map()是对数组进行操作的. for-in的使用:对于一个数组里的每一个 ...

  2. php in循环与for循环,详谈js中标准for循环与foreach(for in)的区别

    js中遍历数组的有两种方式 var array=['a'] //标准的for循环 for(var i=1;i alert(array[i]) } //foreach循环 for(var i in ar ...

  3. JS数组中 forEach() 和 map() 的区别

    JS数组中 forEach() 和 map() 的区别 Array中 Array.forEach()和 Array.map()方法之间的区别. forEach()和map()方法通常用于遍历Array ...

  4. vue forEach和map的区别

    记录工作中遇到的问题,选择右边数组一项进行删除,forEach和map的区别就出来了 1.刚开始是foreach写的,效果没出来 this.rightTree:表示右边的数组this.oriFathe ...

  5. java foreach和for循环区别_java相关:老生常谈foreach(增强for循环)和for的区别

    java相关:老生常谈foreach(增强for循环)和for的区别 发布于 2020-8-18| 复制链接 下面小妖就为大家带来一篇老生常谈foreach(增强for循环)和for的区别.小妖觉得挺 ...

  6. 数组中的forEach和map的区别

    大多数情况下,我们都要对数组进行遍历,然后经常用到的两个方法就是forEach和map方法. 先来说说它们的共同点 相同点 都是循环遍历数组中的每一项 forEach和map方法里每次执行匿名函数都支 ...

  7. foreach和map的区别

    1.相同点 1) 都是循环遍历数组中的每一项. 2) 每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组). 3) 匿名函数中的this都是指向wi ...

  8. nodejs中forEach和普通循环区别

    问题描述: 最近在写代码中发现在forEach循环中,使用await函数跟正常的循环有区别,所以进行记录. 一般我们都将forEach叫做增强for循环,确实减少了部分代码量,但是当内部使用await ...

  9. php中的foreach和js中的foreach的用法和区别

    PHP中的foreach循环: 主要用于遍历数组 例如: (1)// $colors=array("red","yellow","blue" ...

最新文章

  1. Linux16-防火墙与firewalld
  2. AWS — Nitro System
  3. JSPDF运用实例(解决图片跨域问题)
  4. 控制结构(1)-判断控制
  5. 30-35岁职场规划深谈,字字戳心
  6. Leetcode 268. 缺失数字 解题思路及C++实现
  7. Python运行异常 Original error was: DLL load failed:
  8. 【快乐水题】2000. 反转单词前缀
  9. Tcp连接arp协议详解
  10. Spring Boot——不同环境调用不同的配置文件解决方案
  11. Object-c 类、对象方法
  12. Codeforce_732
  13. 如何在Global.asax中判断是否是ajax请求
  14. 盐城工学院计算机基础试卷,大学计算机基础及实用软件/大学计算机基础
  15. java m2文件放哪里_windows下打开.m2文件夹,没有找到setting.xml
  16. rust怎么用items刷东西_rust服主怎么刷东西 | 手游网游页游攻略大全
  17. 蓝桥杯 基础练习 高精度加法
  18. 【开发者笔记】利用ab命令对接口进行压力测试
  19. 修复Win10任务栏开始菜单等系统图标无法点击问题
  20. 学画画软件app推荐_绘画APP推荐|很全的学画画的APP推荐

热门文章

  1. iphone 数据存储之属性和归档archive
  2. MANet:盲图像超分辨率中空间变异核估计的互仿射网络(ICCV 2021)
  3. 炸!自动驾驶界又添利器!
  4. 阿联酋起源人工智能研究院(IIAI)诚邀优秀人才加盟
  5. 模型优化秘诀:从数据的角度分析,零代码也可以提升精度
  6. 强化学习能挑战众多世界冠军,人类亦能利用强化学习成为冠军
  7. 强调模型可复现性!英伟达与伦敦国王学院开源医学AI框架 MONAI
  8. ICCV 2019 Oral | 解读北大提出的期望最大化注意力网络EMANet
  9. 《Python编程从入门到实践》记录之Python函数返回值
  10. 从零开始编写深度学习库(五)Eigen Tensor学习笔记2.0