如何在PHP中利用递归实现一个层级树状展开效果

  介绍

这期内容当中小编将会给大家带来有关如何在PHP中利用递归实现一个层级树状展开效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

实现代码:

& lt; ? php    ,,   db 美元;=,mysql_connect (& # 39; localhost # 39;,, & # 39;根# 39;,,& # 39;根# 39;),或是死(& # 39;可以\ & # 39;t  connect 用数据库,),,   mysql_select_db(& # 39;测试# 39;),或是死(& # 39;可以\ & # 39;t  find  database :,测试# 39;),,   result 美元;=,mysql_query (& # 39; select  id, fid,, name 得到树# 39;),,   而(arr 美元;=,mysql_fetch_array(结果)美元){,   $ data[],才能=,阵列(,   ,,,& # 39;id # 39;,=祝辞,arr美元[& # 39;id # 39;),,,   ,,,& # 39;支撑材# 39;,=祝辞,arr美元[& # 39;支撑材# 39;),,   ,,,& # 39;名字# 39;,=祝辞,arr美元[& # 39;名字# 39;),,,   ,,);   },   ,,//,将数据按照缩进简单排列,见图1,   function  data2arr(树,美元,美元rootId =, 0,, level 美元;=,0),{,   foreach才能(tree 美元;as 叶美元),{,   ,,,如果(叶美元[& # 39;支撑材# 39;],==,rootId美元),{,   ,,,,,echo 函数(& # 39;,,,,,,,,& # 39;,,美元级别),只叶美元[& # 39;id # 39;],只& # 39;,& # 39;,只美元叶(& # 39;名字# 39;],只& # 39;& lt; br/祝辞& # 39;,,   ,,,,,foreach (tree 美元;as  $ l), {,   ,,,,,,,如果(l美元[& # 39;支撑材# 39;],==,叶美元[& # 39;id # 39;]), {,   ,,,,,,,,,data2arr(树,美元,美元叶(& # 39;id # 39;],, level 美元;+,1),,   ,,,,,,,,,休息,,   ,,,,,,,},   ,,,,,},   ,,,},   ,,},   },   ,,   data2arr(元数据),,   echo  & # 39; & lt; br/祝辞- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - & lt; br/祝辞& # 39;,,   ,,//,将数据按照所属关系封装,见图2,   function  arr2tree(树,美元,美元rootId =, 0), {,   时间=美元才能return 数组();,   foreach才能(tree 美元;as 叶美元),{,   ,,,如果(叶美元[& # 39;支撑材# 39;],==,rootId美元),{,   ,,,,,foreach (tree 美元;as  subleaf美元),{,   ,,,,,,,如果(subleaf美元[& # 39;支撑材# 39;],==,叶美元[& # 39;id # 39;]), {,   ,,,,,,,,,叶美元[& # 39;孩子# 39;],=,arr2tree($树,叶子美元[& # 39;id # 39;]),,   ,,,,,,,,,休息,,   ,,,,,,,},   ,,,,,},   ,,,,,返回[],美元=,叶;美元,   ,,,},   ,,},   return 才能;美元回报,   },   ,,   $ tree =, arr2tree(元数据),,   print_r(树),,   echo  & # 39; & lt; br/祝辞- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - & lt; br/祝辞& # 39;,,   ,,//,将数据使用HTML再次展现,见图3,   function  tree2html(树),{,   echo 才能;& # 39;& lt; ul> & # 39;;,   foreach才能(tree 美元;as 叶美元),{,   ,,,echo  & # 39; & lt; li> & # 39;,叶美元。[& # 39;名字# 39;];,   ,,,如果(!,emptyempty(叶美元[& # 39;孩子# 39;])),tree2html(叶美元[& # 39;孩子# 39;]),,   ,,,echo  & # 39; & lt;/li> & # 39;;,   ,,},   echo 才能;& # 39;& lt;/ul> & # 39;;,   },   ,,   tree2html树($);

上述就是小编为大家分享的如何在PHP中利用递归实现一个层级树状展开效果了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

如何在PHP中利用递归实现一个层级树状展开效果