下面由thinkphp框架开发栏目给大家介绍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,代码如下:

{$k}{$key}{$vo.num}

得到的结果如下:1

a 1 b 2

2

c 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也可以进行这种循环操作,为啥不尝试用这个标签呢?或者把这两个标签结合起来使用呢?顿时,豁然开朗。于是,把前端的代码改成如下:

{$i}{$key}{$vo.num}

得到的结果如下:aaa

a 1 b 2

bbb

c 3 d 4

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

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

php volist获取数组长度,Thinkphp volist多重循环原样输出数组key值相关推荐

  1. c语言数组长度可以在键盘上输入吗,C语言编程(用指针) 定义一个数组长度为10,从键盘输入数组,将每一个元素除以2后,输出数组...

    #includeint main(){int a[10]={},i,sum=0;printf("请输入10个整数:\n");for(i=0;i<10;i++){scanf(& ...

  2. python 二维数组长度_谈一谈多维数组

    谈 一 谈 多 维 数 组 在各种语言中,都提供了多维数组.而多维数组又是很让人迷惑的一个语法结构.今天给大家聊一下多维数组使用中的一些问题. 这里,以Python和IDL为主讲解. 多维数组的概念 ...

  3. java1到100的数组_用java定义一个数组,长度为3: 1)循环输入数组元素值(元素值在1到100之间)...

    展开全部 public static void main(String[] args) { int[] a = new int[3]; Scanner in = new Scanner(System. ...

  4. python遍历数组的两种方法加条件输出数组的值

    第一种方法 1.通过for in遍历数组. 其实本质就是取出来的是这个数组或者列表中的元素,和角标无关. for predict_scores in predict_scores:print(pred ...

  5. js for循环倒序输出数组元素

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. java输出数组中的元素_java一行代码输出数组的所有元素内容

    如果要用java把一个数组的元素都输出到控制台的话,你要怎么做呢? 是通过一个循环去循环数组中的各个元素,然后输出吗? 像不像二维数组 今天我要说的是,可以通过一行代码就完成这个工作.是一样什么样的代 ...

  7. python 二维数组长度_剑指offer二维数组中的查找【Java+Python】

    点击上方"蓝字",关注了解更多 二维数组中的查找 1. 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序 ...

  8. Java Exer0908 从键盘输入皆为正整数的数组元素,数组长度不确定,请找出数组中重复的数字并输出。

    import java.util.Scanner; public class Exer0908 {public static void main(String[] args) {System.out. ...

  9. 补充函数编程,程序功能要求:有一个已知数组d,程序调用函数out输出数组 d的所有元素;调用函数plus对数组d中所有大于0的元素分别加上30;调用函数 cpy将d数组所有元素

    void  out(int *p,int n) {         int i=0;                                     //1分     for(i=0;i< ...

最新文章

  1. python ccbox_python--easygui
  2. 数据分析Python:sklearn数据预处理中fit(),transform()与fit_transform()的区别
  3. PLSQL导出触发器代码
  4. 智能家居的尴尬:概念比用户火
  5. 分享一个关于生鲜电商的竞品分析报告
  6. java jar 版本号,比较两个jar包的版本号
  7. STM32:GPIO的8种输入输出模式深入详解
  8. python爬虫 同花顺_python Flask+爬虫制作股票查询、历史数据、股评词云网页
  9. 【C语言】基于51/52单片机实现楼梯灯控制程序
  10. 路由模式和桥接模式的区别
  11. jQuery 选择城市,显示对应的即时时区时间
  12. 柳传志:选人要看“后脑勺”
  13. 网页底部小鱼游动特效
  14. turtlebot运动控制问题(不用键盘控制,自己写控制节点控制地盘)
  15. BlenderGIS插件 城市建筑3D模型自动生成 教程
  16. cv2颜色空间(2)——交互式的颜色检测
  17. 对英文单词的词性标注
  18. PHP项目实战之商品的增删改查
  19. 如何设置STM32的系统时钟(SYSCLK)
  20. 中国科学技术大学研究生免疫学技术原理与应用复习资料及历年题

热门文章

  1. Generating Adversarial Examples with Adversarial Networks
  2. 介孔二氧化硅纳米 (二氧化硅水凝胶蛋白质/蛋白质包裹二氧化硅纳米粒/纳米二氧化硅包裹荧光蛋白)
  3. NDK学习笔记:FFmpeg音视频同步3(你追我赶,升级ffmpeg/libyuv支持neon)
  4. ftp传输工具FlashFxp+FilezillaServer的使用小记
  5. 网站全站下载软件及其用法
  6. 通用定时器输出PWM波实现呼吸灯
  7. 模拟扑克牌,随机抽取五张牌,判断是否为同花顺
  8. mac新手指南:如何查看你的mac磁盘容量?
  9. CATIA V6软件操作——地形生成
  10. markdown使用pandoc编译成pdf