• 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值

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了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值,而不是默认的,可以把foreach标签和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详细讲解中间件的用法

相关文章

  • 2022-04-29nestjs返回给前端数据格式的封装实现
  • 2022-04-29MAC环境配置定时任务
  • 2022-04-29MySQL中 IN和NOT IN用法详解
  • 2022-04-29织梦DEDECMS首页调用单页文档内容并带过滤HTML的方
  • 2022-04-29dedecms文章审核后给会员增加积分或者金币的办法
  • 2022-04-29网站文字循环变色代码
  • 2022-04-29PhotoShop制作逼真的补丁文字效果的教程
  • 2022-04-29PHP中如何理解foreach遍历二维数组
  • 2022-04-29Linux 定时检测 MySQL 数据库是否宕机并自动重启
  • 2022-04-29如何禁用WordPress 5.5+内置的图片延迟加载功能

文章分类

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

最近更新的内容

    • PHP中mysql_connect()函数不支持怎么办
    • Photoshop打造超酷的光影舞者海报
    • 浅谈bootstrap table分页的实现两种方式
    • Sublime下怎么建立Node编译系统
    • PS制作超逼真霓虹灯效果文字
    • Photoshop绘制逼真的篮球图标教程
    • Photoshop制作超逼真缝线效果
    • PHP高清晰度无损图片压缩功能的实现代码
    • jQuery怎么实现全选效果
    • JS canvas实现画板和签字板功能

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

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