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 相关文章推荐
一个查看session内容的函数
Oct 09 PHP
php结合表单实现一些简单功能的例子
Jun 04 PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 PHP
PHP连接和操作MySQL数据库基础教程
Sep 29 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
Nov 08 PHP
PHP模拟asp.net的StringBuilder类实现方法
Aug 08 PHP
浅谈PHP实现大流量下抢购方案
Dec 15 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 PHP
PHPExcel 修改已存在Excel的方法
May 03 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
May 28 PHP
PHP设计模式之命令模式示例详解
Dec 20 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结合飞信 免费天气预报短信
2009/05/07 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
2016/05/17 PHP
js读取本地excel文档数据的代码
2010/11/11 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
jQuery实现的简单分页示例
2016/06/01 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
js实现单张图片平移切换效果
2017/10/11 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
使用python实现rsa算法代码
2016/02/17 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
Python的高阶函数用法实例分析
2019/04/11 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
Python实现搜索算法的实例代码
2020/01/02 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
django 模版关闭转义方式
2020/05/14 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
教师实习期自我鉴定
2013/10/06 职场文书
大学生自我鉴定评语
2014/01/27 职场文书
2014年消防工作实施方案
2014/02/20 职场文书
请假条范文大全
2014/04/10 职场文书
婚前协议书怎么写
2014/04/15 职场文书
作风大整顿心得体会
2014/09/10 职场文书
2016春节放假通知范文
2015/08/18 职场文书
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS