PHP高效获取树结构信息

来源:文书网 1.86W

学习是通过具体的例子来多练习,知识点才会掌握巩固。以下是本站小编精心为大家整理的PHP教程,希望对大家有所帮助!更多内容请关注应届毕业生网!

PHP高效获取树结构信息

在开发中,经常有一些简单的树形结构的存储,比如产品的多级分类,多级导航栏菜单等,这些物体有一个特性,就是通常会获取整棵树结构。在数据库里保存树结构的方法主要有三种,最简单的一就是通过一个father_id指向当前结构的父节点。对于这样的小结构,一般我们使用最简单的方式存储。

当要获取整棵树结构,网上一般用递归法,这种方式代码简单易懂,但是缺点是需要执行多次数据库查询,而且后面几次获取的元素数量很少甚至为0,效率很差。

其实,遇到这种情况,可以将所有的元素全部从数据库获取出来,然后再根据获取的元素father_id构建树结构,这样就可以解决执行多次数据库查询的性能损耗。下面就以我在实际项目中获取多级导航栏菜单中的函数进抛砖引玉了

12345678910111213141516171819202122232425262728293031/*通过数据库获取所有元素,通过下面函数构造树形结构*/privatefunctiongetTree($menus){$id=$level=0;$menuobjs=array();$tree=array();$notrootmenu=array();foreach($menusas$menu){$menuobj=newstdClass();$menuobj->menu=$menu;$id=$menu['id'];$level=$menu['father_id'];$menuobj->nodes=array();$menuobjs[$id]=$menuobj;if($level){$notrootmenu[]=$menuobj;}else{$tree[]=$menuobj;}}foreach($notrootmenuas$menuobj){$menu=$menuobj->menu;$id=$menu['id'];$level=$menu['father_id'];$menuobjs[$level]->nodes[]=$menuobj;}return$tree;}}

  【拓展阅读】php好学吗?几个月能学会php开发吗?

好多要来硬汉科技学习的学员在来之前都问我:老师,我不是专业的计算机学生,我没有接触过PHP ,我一点基础也没有,我能学会PHP吗?也有些一直想来硬汉科技学习PHP的学员很好奇,这么多的内容,在4个多月的时间就全部学完,真的可以么?这几个月以后自己还是一问三不知怎么办?今天,我们就来说说学习PHP开发这件事。

  PHP是什么,应用得怎么样?

PHP,一个嵌套的.缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域,现在被很多的网站编程人员广泛的运用(以上为专业解释)。小编还想说的是,很多大型网站其实都是用PHP语言编写的,比如:百度、阿里巴巴、腾讯(简称BAT)。

  4个多月能学会PHP吗?

在回答这个问题之前小编想说一下大道理,有些时候,我们往往把事情想的太困难,而真正去做的时候,才会发现自己的潜力。永远不要怀疑自己的能力,有时候你不逼自己一把,根本不知道自己有多优秀,与其前怕狼后怕虎,不如拼尽全力的去学习这几个月。

现在回到这个问题上来,对于没有基础的朋友几个月真的能学会PHP开发吗?小编的回答是:能,也不能!有人肯定就会对我这个答案嗤之以鼻,说你的答案和不回答有什么区别呢?其实,大道理谁都明白。对于有毅力肯下功夫学习的人说的,是可以学好的;但那些一遇到困难就退缩的人来说,就真是遗憾了。在硬汉科技每天8:30准时上课,并且还有晚自习,技术老师也会全程陪着你,有不懂的问题可以随时询问。这样的学习环境下,你说能不能学会PHP?

学习天猫、UI、Web前端等任何一门新的技术也是这样,“世上无难事,只怕有心人”你没有下定决心去做一件事,怎么知道自己不能学会呢。

举个栗子:硬汉科技在2015年11月PHP的班级里面有一名学员是高中毕业生,并且已经在酒吧工作了好几年了。用他自己的话来说:仅有的一点点知识早已经丢到了爪哇国了,但是通过他在硬汉科技的5个月的努力学习,他不仅找到了工作,而且工资还是班里的佼佼者,这样,你有没有信心学好PHP了呢?

热门标签