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 相关文章推荐
无数据库的详细域名查询程序PHP版(4)
Oct 09 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
PHP如何抛出异常处理错误
Mar 02 PHP
php木马webshell扫描器代码
Jan 25 PHP
php遍历所有文件及文件夹的方法深入解析
Jun 08 PHP
php堆排序(heapsort)练习
Nov 13 PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 PHP
PHP如何通过AJAX方式实现登录功能
Nov 23 PHP
php+html5+ajax实现上传图片的方法
May 14 PHP
php排序算法实例分析
Oct 17 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
Oct 24 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.ini 配置文件的深入解析
2013/06/17 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
javascript框架设计读书笔记之数组的扩展与修复
2014/12/02 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
js判断图片加载完成后获取图片实际宽高的方法
2016/02/25 Javascript
Angular5.1新功能分享
2017/12/21 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
将Python代码打包为jar软件的简单方法
2015/08/04 Python
Python实现查找匹配项作处理后再替换回去的方法
2017/06/10 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
python实现烟花小程序
2019/01/30 Python
Python按钮的响应事件详解
2019/03/04 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
Python 复平面绘图实例
2019/11/21 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
Python文件名匹配与文件复制的实现
2020/12/11 Python
Django url 路由匹配过程详解
2021/01/22 Python
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
自考毕业生自我鉴定
2013/11/04 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers