求助:下列多维数组如何用thinkphp模板标签输出

lickn 2012-08-25 12:19:38
下列数组是菜单的数组,如何用thinkphp模板标签输出啊?
其中 lv=1是顶级菜单,lv=2是lv=1的子菜单项,lv=3=lv2的子菜单项(如果lv3没有上级),
如何把“只要有lv=3的菜单项就输出,并且把它的上级菜单项(父菜单项,上级菜单可能还有上级菜单)也输出,
如果某个节点下没有lv=3的项,则该节点(及其父节点都不输出)
弄了一天了,都没想出合适的答案出来,总是不完整,求大家帮小弟看看啊,感谢不尽
array(2) {
[2] => array(6) {
["id"] => string(1) "2"
["pid"] => string(1) "0"
["lv"] => string(1) "1"
["name"] => string(15) "AManagement"
["title"] => string(12) "A管理"
["submenu"] => array(2) {
[0] => array(6) {
["id"] => string(1) "7"
["pid"] => string(1) "2"
["lv"] => string(1) "2"
["name"] => string(20) "TotalManagement"
["title"] => string(15) "总管理"
["submenu"] => array(1) {
[0] => array(6) {
["id"] => string(2) "84"
["name"] => string(12) "PList"
["lv"] => string(1) "3"
["group_id"] => string(1) "7"
["title"] => string(17) "P总清单"
["access"] => int(1)
}
}
}
[1] => array(6) {
["id"] => string(1) "8"
["pid"] => string(1) "2"
["lv"] => string(1) "2"
["name"] => string(4) "ZH"
["title"] => string(14) "ZH"
["submenu"] => array(1) {
[0] => array(6) {
["id"] => string(2) "85"
["name"] => string(14) "ZHList"
["lv"] => string(1) "3"
["group_id"] => string(1) "8"
["title"] => string(18) "ZH清单"
["access"] => int(1)
}
}
}
[2] => array(6) {
["id"] => string(1) "85"
["name"] => string(4) "AB"
["lv"] => string(1) "3"
["group_id"] => string(1) "11"
["title"] => string(12) "AB"
["access"] => int(1)
}
}
}
[6] => array(6) {
["id"] => string(1) "6"
["pid"] => string(1) "0"
["lv"] => string(1) "1"
["name"] => string(19) "BackstageManagement"
["title"] => string(12) "后台管理"
["submenu"] => array(3) {
[0] => array(6) {
["id"] => string(1) "2"
["name"] => string(4) "Node"
["lv"] => string(1) "3"
["group_id"] => string(1) "6"
["title"] => string(12) "节点管理"
["access"] => int(1)
}
[1] => array(6) {
["id"] => string(1) "6"
["name"] => string(4) "Role"
["lv"] => string(1) "3"
["group_id"] => string(1) "6"
["title"] => string(12) "角色管理"
["access"] => int(1)
}
[2] => array(6) {
["id"] => string(1) "7"
["name"] => string(4) "User"
["lv"] => string(1) "3"
["group_id"] => string(1) "6"
["title"] => string(12) "后台用户"
["access"] => int(1)
}
}
}
}


...全文
201 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxuekui 2012-09-21
  • 打赏
  • 举报
回复
这个thinkphp有个Volist标签可以解决

Volist标签主要用于在模板中循环输出数据集或者多维数组。

volist标签(循环输出数据)

闭合
非闭合标签

属性
name(必须):要输出的数据模板变量

id(必须):循环变量

offset(可选):要输出数据的offset

length(可选):输出数据的长度

key(可选):循环的key变量,默认值为i

mod(可选):对key值取模,默认为2

empty(可选):如果数据为空显示的字符串


通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。

在Action中首先对模版赋值:

$User = M('User');

$list = $User->select();

$this->assign('list',$list);



在模版定义如下,循环输出用户的编号和姓名:

<volist name="list" id="vo">

{$vo.id}

{$vo.name}

</volist>
MrCeffoo 2012-08-25
  • 打赏
  • 举报
回复
先将数组直接赋值传到模板,模板里用php直接处理吧
MrCeffoo 2012-08-25
  • 打赏
  • 举报
回复
数组复杂了有点麻烦,简单的方法就是,先将数组直接赋值传到模板,模板里直接用php处理这个模板数组

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧