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

简介下面由thinkphp框架开发栏目给大家介绍Thinkphpvolist多重循环原样输出数组key值的使用总结,希望对需要的朋友有所帮助!最近因为项目的缘故,要使用到volist。在这个过程中,遇到了一些小问题,主要就是volist在循环输出多重数据的时候,如何输出key。网上查阅了不少资料,很失望的是,大多资料就是粘贴复制Thinkphp手册上volist标签的说明。为了帮助其他人,故决定写下这

  

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

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

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

publicfunctioncheck(){$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><volistname="list"id="data"key="k"><td>{$k}</td><td><tr><volistname="data"id="vo"><td>{$key}</td><td>{$vo.num}</td></volist></tr></td></volist></tr>

得到的结果如下:

1a1b22c3d4

在这里,很明显,外重的循环的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><foreachname="list"item="data"key="i"><td>{$i}</td><td><tr><volistname="data"id="vo"key="k"><td>{$key}</td><td>{$vo.num}</td></volist></tr></td></foreach></tr>

得到的结果如下:

aaaa1b2bbbc3d4

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

在thinkphp中,用volist标签进行多重数组循环输出的时候,若想输出由数据控制的key值,而不是默认的,可以把foreach标签和volist标签结合起来使用,就能原样输出key值了。

下载链接:网站源码/小程序源码/网站模板下载

版权声明

   站内部分内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供网络资源分享服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请 联系我们 一经核实,立即删除。并对发布账号进行永久封禁处理。在为用户提供最好的产品同时,保证优秀的服务质量。


本站仅提供信息存储空间,不拥有所有权,不承担相关法律责任。

给TA打赏
共{{data.count}}人
人已打赏
网站技巧

MySQL 中 InnoDB 和 MyISAM 区别

2024-9-19 19:43:40

网站技巧

干货分享:CSS 9种方法实现不定宽高的垂直水平居中

2024-9-19 19:43:42

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索