ThinkPHP模板Volist标签嵌套循环输出多维数组的方法


Posted in PHP onMarch 23, 2016

本文实例讲述了ThinkPHP模板Volist标签嵌套循环输出多维数组的方法。分享给大家供大家参考,具体如下:

ThinkPHP 中对 volist 标签嵌套使用可实现多维数组的输出。

volist 嵌套使用

一般的二维数组,可以用 volist 标签直接循环输出。对于多维数组,则需要对其中的数组成员再次使用 volist 标签嵌套循环输出。

构建一个多维数组:

$food = array();
$food[0]['fruits'][0]['fruits1'] = '苹果1';
$food[0]['fruits'][0]['fruits2'] = '桔子1';
$food[0]['fruits'][0]['fruits3'] = '香蕉1';
$food[0]['vegetables'] = '白菜1';
$food[1]['fruits'][1]['fruits1'] = '苹果2';
$food[1]['fruits'][1]['fruits2'] = '桔子2';
$food[1]['fruits'][1]['fruits3'] = '香蕉2';
$food[1]['vegetables'] = '白菜2';

使用 print_r() 函数打印出该数组如下:

Array
(
  [0] => Array
    (
      [fruits] => Array
        (
          [0] => Array
            (
              [fruits1] => 苹果1
              [fruits2] => 桔子1
              [fruits3] => 香蕉1
            )
        )
      [vegetables] => 白菜1
    )
  [1] => Array
    (
      [fruits] => Array
        (
          [1] => Array
            (
              [fruits1] => 苹果2
              [fruits2] => 桔子2
              [fruits3] => 香蕉2
            )
        )
      [vegetables] => 白菜2
    )
)

在对应模块操作(如Index/display)里将变量赋值给模板,并将模板输出:

$this->assign( "food", $food );
$this->display();

模板 Tpl/default/Index/display.html :

<p>食物品种:</p><br />
<volist name="food" id="vo">
 <volist name="vo['fruits']" id="f">
 <p>水果1:{$f['fruits1']}</p>
 <p>水果2:{$f['fruits2']}</p>
 <p>水果3:{$f['fruits3']}</p>
 </volist>
 <p>蔬菜:{$vo['vegetables']}</p><br />
</volist>

在模板里面,首先将 $food 变量进行循环输出。由于 $food 数组的成员 fruits 也是一个数组,因此再对 $vo['fruits'] 变量进行循环输出(注意没有 $ 符号)。

输出结果如下:

食物品种:

水果1:苹果1
水果2:桔子1
水果3:香蕉1
蔬菜:白菜1

水果1:苹果2
水果2:桔子2
水果3:香蕉2
蔬菜:白菜2

同理推之以此方法可以对更多维的数组进行循环输出。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP5新特性: 更加面向对象化的PHP
Nov 18 PHP
php发送post请求的三种方法
Feb 11 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
php+highchats生成动态统计图
May 21 PHP
php伪静态之APACHE篇
Jun 02 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
PHP Session机制简介及用法
Aug 19 PHP
php实现只保留mysql中最新1000条记录
Jun 18 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
前端必学之PHP语法基础
Jan 01 PHP
PHP实现递归目录的5种方法
Oct 27 PHP
PHP开发API接口签名生成及验证操作示例
May 27 PHP
ThinkPHP路由机制简介
Mar 23 #PHP
PHP getallheaders无法获取自定义头(headers)的问题
Mar 23 #PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
Mar 23 #PHP
SSO单点登录的PHP实现方法(Laravel框架)
Mar 23 #PHP
Zend Framework开发入门经典教程
Mar 23 #PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
Mar 23 #PHP
Zend Framework教程之Zend_Config_Ini用法分析
Mar 23 #PHP
You might like
php设计模式之命令模式使用示例
2014/03/02 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
Python读写ini文件的方法
2015/05/28 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
法学研究生自我鉴定范文
2013/12/04 职场文书
铁路工务反思材料
2014/02/07 职场文书
药品采购员岗位职责
2014/02/08 职场文书
医师定期考核实施方案
2014/05/07 职场文书
儿童生日会策划方案
2014/05/15 职场文书
松材线虫病防治方案
2014/06/15 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
义诊活动通知
2015/04/24 职场文书
结婚典礼主持词
2015/06/29 职场文书
MySQL 使用索引扫描进行排序
2021/06/20 MySQL
Minikube搭建Kubernetes集群
2022/03/31 Servers