时间:2021-07-01 10:21:17 帮助过:8人阅读
ThinkPHP 中对 volist 标签嵌套使用可实现多维数组的输出。
volist 嵌套使用
一般的二维数组,可以用 volist 标签直接循环输出。对于多维数组,则需要对其中的数组成员再次使用 volist 标签嵌套循环输出。
构建一个多维数组:
- $food = array();
- $food[0]['fruits'][0]['fruits1'] = '苹果1';
- $food[0]['fruits'][0]['fruits2'] = '桔子1';
- $food[0]['fruits'][0]['fruits3'] = '香蕉1';
- $food[0]['vegetables'] = '白菜1';
- $food[1]['fruits'][1]['fruits1'] = '苹果2';
- $food[1]['fruits'][1]['fruits2'] = '桔子2';
- $food[1]['fruits'][1]['fruits3'] = '香蕉2';
- $food[1]['vegetables'] = '白菜2';
使用 print_r() 函数打印出该数组如下:
- Array
- (
- [0] => Array
- (
- [fruits] => Array
- (
- [0] => Array
- (
- [fruits1] => 苹果1
- [fruits2] => 桔子1
- [fruits3] => 香蕉1
- )
- )
- [vegetables] => 白菜1
- )
- [1] => Array
- (
- [fruits] => Array
- (
- [1] => Array
- (
- [fruits1] => 苹果2
- [fruits2] => 桔子2
- [fruits3] => 香蕉2
- )
- )
- [vegetables] => 白菜2
- )
- )
在对应模块操作(如Index/display)里将变量赋值给模板,并将模板输出:
- $this->assign( "food", $food );
- $this->display();
模板 Tpl/default/Index/display.html :
- <p>食物品种:</p><br>
- <volist name="food">
- <volist name="vo['fruits']">
- <p>水果1:{$f['fruits1']}</p>
- <p>水果2:{$f['fruits2']}</p>
- <p>水果3:{$f['fruits3']}</p>
- </volist>
- <p>蔬菜:{$vo['vegetables']}</p><br>
- </volist>
在模板里面,首先将 $food 变量进行循环输出。由于 $food 数组的成员 fruits 也是一个数组,因此再对 $vo['fruits'] 变量进行循环输出(注意没有 $ 符号)。
输出结果如下:
- 食物品种:
- 水果1:苹果1
- 水果2:桔子1
- 水果3:香蕉1
- 蔬菜:白菜1
- 水果1:苹果2
- 水果2:桔子2
- 水果3:香蕉2
- 蔬菜:白菜2
同理推之以此方法可以对更多维的数组进行循环输出。
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
以上就介绍了ThinkPHP模板Volist标签嵌套循环输出多维数组的方法,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。