PHP recursive implementation of hierarchical tree-like presentation data
?
$arr [' id '], ' fid ' = $arr [' FID '], ' name ' and ' = ' $arr [' name '];} The data is arranged in a simple indentation as shown in Figure 1function Data2arr ($tree, $rootId = 0, $level = 0) {foreach ($tree as $leaf) {if ($leaf [' FID '] = = $rootId) {echo str_repeat (', $level). $leaf [' id ']. ' ' . $leaf [' name ']. '
'; foreach ($tree as $l) {if ($l [' fid '] = = $leaf [' id ']) {Data2arr ($tree, $leaf [' id '], $leve L + 1); Break }}}}}data2arr ($data); Echo '
-----------------------------------
';//The data according to the ownership of the package shown in Figure 2function 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);p rint_r ($tree); Echo '
-----------------------------------
';//use HTML again to display the data as shown in Figure 3function tree2html ($tree) {echo '
'; foreach ($tree as $leaf) {echo '
- '. $leaf [' name ']; if (! empty ($leaf [' Children '])) tree2html ($leaf [' Children ']); Echo '
'; } Echo '
';} Tree2html ($tree);
?
?
?
Figure 1:
? Figure 2:
?? Figure 3: