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 auth_http类库进行身份效验
Mar 19 PHP
解析php时间戳与日期的转换
Jun 06 PHP
学习php分页代码实例
Oct 24 PHP
php查询相似度最高的字符串的方法
Mar 12 PHP
php输出xml属性的方法
Mar 19 PHP
PHP微信红包生成代码分享
Oct 06 PHP
基于PHP-FPM进程池探秘
Oct 17 PHP
php通过pecl方式安装扩展的实例讲解
Feb 02 PHP
PHP性能测试工具xhprof安装与使用方法详解
Apr 29 PHP
php post json参数的传递和接收处理方法
May 31 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
Sep 03 PHP
Laravel 框架返回状态拦截代码
Oct 18 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
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
2011/01/07 PHP
php下拉选项的批量操作的实现代码
2013/10/14 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
JQuery优缺点分析说明
2010/06/09 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
在vue项目中集成graphql(vue-ApolloClient)
2018/09/08 Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
2020/09/04 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
在python中实现将一张图片剪切成四份的方法
2018/12/05 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
意大利珠宝店:Luxury Zone
2019/01/05 全球购物
小学门卫岗位职责
2013/12/17 职场文书
商场拾金不昧表扬信
2014/01/13 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
初中军训感想
2015/08/07 职场文书
五年级作文之想象作文
2019/10/30 职场文书
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL