php之菜单栏用递归显示
来源:互联网 发布:手机淘宝5.8.0旧版本 编辑:程序博客网 时间:2024/06/01 22:46
之前做的菜单只是最多三级菜单,现在想实现多级菜单,并且添加菜单之后,立马显示出来,
如果想实现其中有一个方法是递归,通过递归把菜单遍历出来,但是如果想显示在html页面中就需要整合了。
<?php
function arr_foreach($tree)
{
$html = '';
foreach($tree as $v)
{
if($v['sub'] == '')
{
$html .= "<li ";
$html .= ($_SESSION['m_name'] == $v['m_name'])? 'class="active"':'';
$html .= ">";
$html .="<a href='{$v["m_url"]}'>";
$html .= "<i class='{$v["m_remark"]}'>";
$html .=$v['m_title'].'12121';
$html .= "</i>";
$html .= "</a>";
$html .= "<b class='arrow'></b>";
$html .= "</li>";
}
else
{
$html .= "<li ";
$html .= ($_SESSION['m_name'] == $v['m_name']) ? 'class="active"' : '';
$html .= ">";
$html .= "<a href='{$v["m_url"]}' class='dropdown-toggle'>";
$html .= "<i class='{$v["m_remark"]}'>";
$html .= "<span class='menu-text'>";
$html .= $v['m_title'];
$html .= "</span>";
$html .= "<b class='arrow fa fa-angle-down'></b>";
$html .= "</i>";
$html .= "</a>";
$html .= arr_foreach($v['sub']);
$html = $html . "</li>";
}
}
return $html ? '<ul class="submenu">'.$html.'</ul>' : $html ;
}
echo arr_foreach(unserialize($_SESSION['menu']));//从控制器获取得到的菜单数组,再反序列话出来。
?>
闲聊:说实在的我之前不明白为什么还要序列化再反序列化,serialize()把变量和他们的值编码成文本形式,unserialize()回复原先变量。
serialize()有利于存储或传递PHP值,同时不丢失其类型和结构。这个在cms(内容管理系统)经常可以看到。
- php之菜单栏用递归显示
- php递归显示数据集合
- php之递归调用,递归创建目录
- 傻瓜式理解递归之php递归
- WORD菜单栏不显示
- ECB菜单栏显示
- 菜单栏显示效果
- 去掉菜单栏全屏显示
- 显示sublime的菜单栏
- SublimeText菜单栏显示
- 递归应用之PHP演示
- PHP正则之递归匹配
- 用Taglib实现--根据权限动态显示菜单栏
- 用PHP实现二分法查找之递归和迭代
- MFC中隐藏、显示菜单栏
- gvim菜单栏不显示了
- adobe reader 菜单栏显示不出字
- MFC中隐藏、显示菜单栏
- 静态变量static的内存图
- 基础总结篇之七:ContentProvider之读写短消息
- 逆序的三位数
- 韩顺平Linux笔记(三)——常用命令
- unable to start program "... ...~.lib"
- php之菜单栏用递归显示
- linux下使用codeblocks编译mysql操作c程序错误
- 蓝牙设计问与答
- 基础总结篇之六:ContentProvider之读写联系人
- Android卸载监听详解
- tty.js打通浏览器与Linux的通道
- [R语言]文本分类(2)
- 0011从后缀表达式与二叉树的关系
- Struts1和Struts2的区别和对比(完整版)