This article is mainly for the introduction of PHP recursive implementation of hierarchical tree-like expansion of relevant information, the need for friends can refer to the following
:
Implementation code:
<?php $db = mysql_connect (' localhost ', ' root ', ' root ') or Die (' can\ ' t connect to database '); mysql_select_db (' test ') or Die (' can\ ' t find Database:test '); $result = mysql_query (' Select ID, FID, name from tree '); while ($arr = Mysql_fetch_array ($result)) {$data [] = array (' id ' = = $arr [' id '], ' fid ' = * $arr [' FID '], ' name ' = = $arr [' name '],); }//The data is indented in a simple arrangement as shown in Figure 1 function Data2arr ($tree, $rootId = 0, $level = 0) {foreach ($tree as $leaf) {if ($leaf [' FID '] = = $rootId) {echo str_repeat (', $level). $leaf [' id ']. ' ' . $leaf [' name ']. ' <br/> '; foreach ($tree as $l) {if ($l [' fid '] = = $leaf [' id ']) {Data2arr ($tree, $leaf [' id '], $level + 1); Break }}}}} Data2arr ($data); Echo ' <br/>-----------------------------------------------------------------------<br/> '; Enclose the data in the owning relationship as shown in Figure 2 function Arr2tree ($tree, $rootId = 0) {$return = array (); foreach ($tree as $leaf) { if ($leaf [' fid '] = = $rootId) {foreach ($tree as $subleaf) {if ($subleaf [' fid '] = = $leaf [' id ']) { $leaf [' children '] = Arr2tree ($tree, $leaf [' id ']); Break }} $return [] = $leaf; }} return $return; } $tree = Arr2tree ($data); Print_r ($tree); Echo ' <br/>-----------------------------------------------------------------------<br/> '; Using HTML again to show the data is shown in Figure 3 function tree2html ($tree) {echo ' <ul> '; foreach ($tree as $leaf) {echo ' <li> '. $leaf [' name ']; if (! emptyempty ($leaf [' Children '])) tree2html ($leaf [' Children ']); Echo ' </li> '; } echo ' </ul> '; } tree2html ($tree);
Summary: The above is the entire content of this article, I hope to be able to help you learn.