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实现图片简单上传
Oct 09 PHP
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
ezSQL PHP数据库操作类库
May 16 PHP
PHP+Mysql+jQuery实现动态展示信息
Oct 08 PHP
学习php设计模式 php实现命令模式(command)
Dec 08 PHP
php中文字符串截取多种方法汇总
Oct 06 PHP
验证坐标在某坐标区域内php代码
Oct 08 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
php使用环形链表解决约瑟夫问题完整示例
Aug 07 PHP
php layui实现前端多图上传实例
Jul 30 PHP
laravel框架邮箱认证实现方法详解
Nov 22 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
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
PHP单链表的实现代码
2016/07/05 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
用jquery设置按钮的disabled属性的实现代码
2010/11/28 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
jQuery ReferenceError: $ is not defined 错误的处理办法
2013/05/10 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
2019/05/10 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
利用Hyperic调用Python实现进程守护
2018/01/02 Python
python中使用print输出中文的方法
2018/07/16 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
python脚本和网页有何区别
2020/07/02 Python
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
干部年终考核评语
2015/01/04 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
python之基数排序的实现
2021/07/26 Python
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL
python中的getter与setter你了解吗
2022/03/24 Python