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面向对象 字段的声明与使用
Jun 14 PHP
使用PHP获取汉字的拼音(全部与首字母)
Jun 27 PHP
解析php类的注册与自动加载
Jul 05 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
PHP判断文章里是否有图片的简单方法
Jul 26 PHP
php中把美国时间转为北京时间的自定义函数分享
Jul 28 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
Nov 19 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
php计算年龄精准到年月日
Nov 17 PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
PHP+MySQL实现消息队列的方法分析
May 09 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
smarty的保留变量问题
2008/10/23 PHP
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
php的ddos攻击解决方法
2015/01/08 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
jQuery遍历Table应用示例
2014/04/09 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
2016/04/11 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
2018/05/31 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
JavaScript实现网页留言板功能
2020/11/23 Javascript
轻松掌握python设计模式之策略模式
2016/11/18 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
python 三种方法提取pdf中的图片
2021/02/07 Python
乡镇网格化管理实施方案
2014/03/23 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
学生吸烟检讨书
2014/09/14 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
2014财务年终工作总结
2014/12/08 职场文书
高一英语教学反思
2016/03/03 职场文书
《风不能把阳光打败》读后感3篇
2020/01/06 职场文书