• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > Thinkphp volist多重循环原样输出数组key值

Thinkphp volist多重循环原样输出数组key值

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了Thinkphp,volist多重循环,输出数组key值等相关知识,希望对您有所帮助

下面给大家介绍Thinkphp volist多重循环原样输出数组key值的使用总结,希望对需要的朋友有所帮助!


Thinkphp volist多重循环原样输出数组key值


最近因为项目的缘故,要使用到volist。在这个过程中,遇到了一些小问题,主要就是volist在循环输出多重数据的时候,如何输出key。网上查阅了不少资料,很失望的是,大多资料就是粘贴复制Thinkphp手册上volist标签的说明。为了帮助其他人,故决定写下这篇文章。( 在这里,使用的框架是Thinkphp3.2,其它的相关知识,是php数组)。首先贴出控制器里面代码:

public function check(){    $multiArr = [['a' => ['num' => '1',], 'b' => ['num' => '2',]], ['c' => ['num' => '3',], 'd' => ['num' => '4',]]];    $this->assign('list', $multiArr);    $this->display();}

打印出来的格式如下:

Array(    [0] => Array        (            [a] => Array                (                    [num] => 1                )            [b] => Array                (                    [num] => 2                )        )    [1] => Array        (            [c] => Array                (                    [num] => 3                )            [d] => Array                (                    [num] => 4                )        ))

很明显,这是一个多重数组。如果想得到他们的key值,如果使用volist,代码如下:

<tr>    <volist name="list" id="data" key="k">    <td>{$k}</td>    <td>        <tr>            <volist name="data" id="vo">            <td>{$key}</td>            <td>{$vo.num}</td>            </volist>        </tr>    </td>    </volist></tr>

得到的结果如下:

1a   1   b   22c   3   d   4

在这里,很明显,外重的循环的key值是系统默认的,而里面的这一重循环出来的key值是由数据本身决定的而不是由循环控制的。

http://document.thinkphp.cn/manual_3_2.html#volist

在Thinkphp手册里面,这个说的很清楚。如果到这里,没其他的要求的话,其实可以满足大多数输出key值的要求了。但是如果数组改成下面的格式:

$multiArr = [    'aaa' => [        'a' => [            'num' => '1',        ],        'b' => [            'num' => '2',        ]    ],    'bbb' => [        'c' => [            'num' => '3',        ],        'd' => [            'num' => '4',        ]    ]];

并且此时,外重循环出的key值和内层循环出的key值均由数据本身决定,而不是循环控制的,那该怎么处理呢?好吧,当时走入误区了,一直想用两个volist进行循环,然后输出key值(它由数据本身决定),但是尝试了好久,发现还是不行。查阅了不少的资料,发现好多都没有讲到这个问题。谋杀了无数脑细胞,看着代码,突然想到,foreach也可以进行这种循环操作,为啥不尝试用这个标签呢?或者把这两个标签结合起来使用呢?顿时,豁然开朗。于是,把前端的代码改成如下:

<tr>    <foreach name="list" item="data" key="i">        <td>{$i}</td>        <td>            <tr>                <volist name="data" id="vo" key="k">                    <td>{$key}</td>                    <td>{$vo.num}</td>                </volist>            </tr>        </td>    </foreach></tr>

得到的结果如下:

aaaa   1   b   2bbbc   3   d   4

满足了上面的要求。总结如下:

在thinkphp中,用volist标签进行多重数组循环输出的时候,若想输出由数据控制的key值,而不是默认

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • laravel与thinkphp之间的区别与优缺点
  • ThinkPhp5.1制作微信支付以及支付后的几种状态说明
  • ThinkPHP3.2.3如何从php5升级到php7
  • 详解thinkphp下部分内容的ajax无刷新分页
  • 你知道Thinkphp5.1让验证码在Electron-vue中怎么用?
  • 关于ThinkPHP的join关联查询不使用默认的表前缀
  • ThinkPHP5通过ajax插入图片并实时显示(完整代码)
  • 分析 thinkphp5 显示render不兼容问题
  • ThinkPHP5访问怎么去除/public/index.php
  • Thinkphp5.1详细讲解中间件的用法

相关文章

  • 图文详解thinkphp5+barcode生成条形码
  • Photoshop制作一个水晶卡通人像图标
  • FCKeditor安装FLV视频插件,适用所有CMS
  • thinkphp5报错显示nginx 404页面的解决办法
  • uniapp适配到微信小程序需要注意些什么?
  • Photoshop绘制漂亮的粉色立体心形教程
  • 在SQL查询中GROUP BY的含义是什么?
  • 修改织梦cms标签TAG不限制长度
  • 看看Vue中如何封装一个自动化注册全局组件
  • Discuz怎么添加广告位?自定义广告位方法浅析

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • CSS如何实现渐变提示框(tooltips)
    • Phpstudy:80或者3306端口占用解决方案
    • Docker基础之compose文件结构以及安装工具
    • vuejs中v-show和v-if的区别是什么
    • LayUI如何导入excel文件
    • 如何利用CSS来美化滑动输入条?自定义样式方法浅析
    • 如何解决phpmyadmin打开很慢的问题
    • 前端怎么调用后台thinkphp6验证码
    • Photoshop绘制一个复古的游戏手柄
    • CentOS7 MySQL怎么进行定时备份

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有