• 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框架开发栏目给大家介绍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-29介绍Thinkphp5之Workerman
  • 2022-04-29浅析安卓app和微信授权登录及分享完整对接(代码分享)
  • 2022-04-29帝国CMS7.5使用TAGSID实现伪静态调用方法
  • 2022-04-29BootstrapTable如何重新加载数据?3种方式了解一下!
  • 2022-04-29Photoshop CS6制作3D文字的片头动画教程
  • 2022-04-29深入解析asp.net中mvc4自定义404页面(分享)
  • 2022-04-29如何升级或修改nodejs的版本
  • 2022-04-29WordPress如何创建page页面并添加跳转链接
  • 2022-04-29手把手教你在微信小程序中使用canvas绘制天气折线图(附代码)
  • 2022-04-29DedeCMS 5.6升级至DedeCMS5.7SP1后类目和发布人不显示

文章分类

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

最近更新的内容

    • Dedecms怎么实现键盘翻页的功能
    • 对英文网站优化的总结和长尾关键字的技巧运用
    • 正则表达式解决input框固定输入值的格式(金额,特殊字符)
    • Illustrator教程:如何导出已经设计好的按钮
    • 手把手教你在小程序中怎么实现悬浮按钮(代码示例)
    • photoshop制作蟒蛇皮纹字效果
    • CSS3如何实现图片木桶布局?(附代码)
    • 宝塔面板升级专业破解版 免费使用所有功能【亲测可用】
    • ThinkPHP中if标签和比较标签对于变量的比较
    • ThinkPHP5跟laravel的区别有哪些

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

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