原文出处http://renzhen.iteye.com/blog/1329949
想写树形导航菜单,然后各种百度,这里涉及到引用传递,写的蛮好的
/* 通过数据库获取所有元素,通过下面函数构造树形结构 */ private function getTree($menus) { $id = $level = 0; $menuobjs=array(); $tree = array(); $notrootmenu=array(); foreach($menus as $menu){ $menuobj=new stdClass(); $menuobj->menu=$menu; $id = $menu['id']; $level = $menu['father_id']; $menuobj->nodes = array(); $menuobjs[$id]=$menuobj; if ($level) { $notrootmenu[]=$menuobj; } else { $tree[] = $menuobj; } } foreach($notrootmenu as $menuobj){ $menu=$menuobj->menu; $id = $menu['id']; $level = $menu['father_id']; $menuobjs[$level]->nodes[]=$menuobj; } return $tree; } }
如果你想让自己的数组输出好看一些,可以做如下操作
可以按照json格式输出数组
echo "<pre>";print_r($arr);echo "<pre>";
整合一下我自己的输出
function setTree($tree){ foreach ($tree as $key=>$val){ $menu = $val->menu; $nodes = $val->nodes; $flag = str_repeat ("--",$menu["level"]); echo "<pre><font color=red>".$flag;print_r($menu["title"]);echo "</font></pre>"; if(!is_null($nodes)){ setTree($nodes); } } }
最后写一下数据格式
//数据输出 a --c ----f --d b --e //数据格式 Array ( [0] => Nav Object ( [menu] => Array ( [id] => 1 [title] => a [url] => a [father_id] => 0 [level] => 0 ) [nodes] => Array ( [0] => Nav Object ( [menu] => Array ( [id] => 3 [title] => c [url] => c [father_id] => 1 [level] => 1 ) [nodes] => Array ( [0] => Nav Object ( [menu] => Array ( [id] => 6 [title] => f [url] => f [father_id] => 3 [level] => 2 ) [nodes] => Array ( ) ) ) ) [1] => Nav Object ( [menu] => Array ( [id] => 4 [title] => d [url] => d [father_id] => 1 [level] => 1 ) [nodes] => Array ( ) ) ) ) [1] => Nav Object ( [menu] => Array ( [id] => 2 [title] => b [url] => b [father_id] => 0 [level] => 0 ) [nodes] => Array ( [0] => Nav Object ( [menu] => Array ( [id] => 5 [title] => e [url] => e [father_id] => 2 [level] => 1 ) [nodes] => Array ( ) ) ) ) )
相关推荐
"左侧黑色树形导航菜单"就是一个专门针对这一需求设计的组件,它采用了流行的Bootstrap框架,并结合了jQuery进行开发,旨在提供一种简洁、大气且易于使用的导航解决方案。 Bootstrap是一款广泛应用于前端开发的开源...
在网页设计中,树形导航菜单是一种常见的交互元素,它能有效地组织大量信息,帮助用户快速定位和访问网站的不同部分。本资源包包含了18种精心整理的树形导航菜单,这些菜单各具特色,涵盖了多种技术和设计风格,旨在...
"漂亮的树形导航菜单"就是一个旨在提升用户体验的JS特效。这种菜单以树状结构展示,允许用户通过层级关系快速浏览和访问网站的内容。 树形导航菜单是一种常见的网页设计元素,它模仿了计算机文件系统中的目录结构。...
树形导航菜单是一种常见的网页设计元素,用于组织和展示层级结构的数据或页面链接。这种菜单以树状的形式呈现,用户可以通过展开和折叠节点来浏览不同的层次。在本资源中,"树形导航菜单,本人珍藏" 提供了一个可...
在IT领域,树形导航菜单是一种常见的用户界面元素,它以树状结构展示信息层级,帮助用户高效地浏览和操作复杂的数据或功能。本资源"丰富多彩的树形导航菜单--样式美观"显然聚焦于设计美观且功能丰富的树形菜单,为...
在网页设计中,树形导航菜单是一种常见的交互元素,它能有效地组织和展示层次结构的信息。JavaScript 是实现这种动态交互效果的重要工具。本资源包"javascript树形导航菜单大全"显然是一个集合了多种不同风格和功能...
在IT领域,树形导航菜单是一种常见的用户界面元素,尤其在网页设计和应用程序开发中扮演着重要角色。这种菜单以树状结构展示信息,允许用户通过层级关系来探索和访问内容。下面,我们将深入探讨“树形导航菜单”的...
在IT行业中,树形导航菜单是一种常见的用户界面元素,尤其在网页和应用程序设计中,它被广泛用于组织和展示层次化的数据。这个“一个扩展性很好的树形导航菜单”资源,据描述,可能是开发者们难得一见的高效解决方案...
"漂亮的css+div右则树形导航菜单"就是一个利用CSS(层叠样式表)和HTML的div元素创建的视觉效果良好的右侧树状结构的导航菜单。这种设计方式既符合现代网页的审美标准,又具有良好的用户体验。 CSS是网页样式和布局...
本文将深入探讨“两种二级树形导航菜单样式”,这些样式来源于懒人建站网站,非常适合用于构建清晰、易用的网页界面。 首先,我们要理解什么是二级树形导航菜单。树形结构是一种数据组织方式,它模拟了自然界中的树...
而树形导航菜单,尤其在内容层次结构复杂时,能够提供清晰的层级展示,使用户更容易理解和操作。本教程将专注于如何使用JavaScript来创建一个垂直的、具有展开/收缩效果的树形导航条。 首先,我们需要理解基础的...
在网页设计中,树形导航菜单是一种常见的交互元素,它能有效地组织和展示层次结构的信息。本主题将深入探讨如何使用纯JavaScript(JS)来实现这样的功能,无需依赖任何外部库或框架。以下是对实现这一功能所需技术点...
本文将深入探讨如何使用jQuery来创建一个树形导航菜单,它具有滑动效果的多级二级下拉菜单功能,并且支持无限层级的嵌套。 首先,jQuery是一个轻量级的JavaScript库,它的API简洁易用,使得动态操作DOM(文档对象...
Css3折叠菜单-可展开的树形导航菜单,其实就是折叠、展开式的菜单,应用了HTML5重绘而成,无使用jquery,完全CSS3技术实现,面向Android手机等移动终端设备浏览,请注意不要使用IE等浏览器查看效果。
在网页设计中,树形导航菜单是一种常见的交互元素,它以层级结构展示网站内容,帮助用户高效地浏览和定位信息。这种菜单通常由节点(包括父节点和子节点)组成,用户可以通过展开和折叠节点来探索不同的内容层级。在...
在IT领域,尤其是在Web开发中,树形导航菜单是一种常见的用户界面元素,它允许用户以层级结构浏览和操作数据。这种菜单通常用于网站的侧边栏或者后台管理系统中,便于用户快速定位和访问多级目录或功能。在这个场景...
《jQuery.tree.js:构建高效树形导航菜单的插件解析》 在网页设计与开发中,树形导航菜单是一种常见的用户界面元素,它能够清晰地展示层级关系,帮助用户更有效地浏览和理解网站结构。jQuery.tree.js是一款专门用于...
在JavaScript编程中,树形导航菜单是一种常见的网页交互元素,尤其在网站的侧边栏、内容目录或文件管理系统中广泛使用。它通过层级结构展示数据,允许用户通过点击展开或收缩节点来查看或隐藏子菜单。本文将深入探讨...