在thinkphp中系统提供了两个标签来实现便利操作:volist标签和foreach标签。
volist语法格式:
<volist name='需要遍历的模板变量名' id='当前遍历到的元素名'循环体</volist>
注意:volist是双标签语句,需要闭合。
foreach语法格式:
<foreach name='需要遍历的模板变量名' item='当前遍历到的元素名'循环体</foreach>
注意:
foreach同样是双标签语句,需要闭合。
区别:
volist语法格式与foreach语法格式形式上大体相同,volist除了上述的name和id属性对之外,还支持更多的属性对,如mod、key、length等等,而foreach标签除了上述的name和item之外只支持key属性对。可以理解成foreach标签是volist标签的一个简化版本。
建议在实际操作时尽量使用volist标签。
案例一:
一维数组的遍历
<?php...//创建控制器testcontroller省略public function test(){ $array = array('西游记','红楼梦','三国演义','水浒传'); $array2 = array( array('孙悟空','猪八戒','沙和尚','唐僧'), array('贾宝玉','薛宝钗','刘姥姥','林黛玉'), array('刘备','关羽','张飞','曹操'), array('宋江','林冲','鲁智深','时迁') ); $this -> assign('array',$array); $this -> display();}<!doctype html><html><head><title>test</title></head><body> <volist name='array' id='vol'> {$vol} - </volist><hr/> <foreach name='array' item='for'> {$for} - </foreach></body></html>
输出展示:
案例二:
二维数组的遍历
<?php...创建testcontroller控制器 public function test(){ $array = array('西游记','红楼梦','三国演义','水浒传'); $array2 = array( array('孙悟空','猪八戒','沙和尚','唐僧'), array('贾宝玉','薛宝钗','刘姥姥','林黛玉'), array('刘备','关羽','张飞','曹操'), array('宋江','林冲','鲁智深','时迁') ); $this -> assign('array',$array); $this -> assign('array2',$array2); $this -> display(); }
<!doctype html><html><head><title>test</title></head><body>/*volist循环遍历,嵌套循环*/ <volist name='array2' id='vol'> <volist name='vol' id='vo'> {$vo}- </volist><br/> </volist><hr/>/*foreach循环遍历,嵌套循环*/<foreach name='array2' item='for'><foreach name='for' item='fo'> {$fo}-</foreach><br/></foreach></body></html>
输出展示:
更多相关thinkphp知识,请访问thinkphp教程!
以上就是thinkphp中循环遍历的两种方法(volist和foreach标签)的详细内容。