$area=Array( Array(' id ' =>1, ' name ' = ' Anhui ', ' parent ' =>0),Array(' id ' =>2, ' name ' = ' ' Haidian ', ' parent ' =>7),Array(' id ' =>3, ' name ' = ' Suixi County ', ' parent ' =>5),Array(' id ' =>4, ' name ' = ' changping ', ' parent ' =>7),Array(' id ' =>5, ' name ' = ' Huaibei ', ' parent ' =>1),Array(' id ' =>6, ' name ' = ' Chaoyang ', ' parent ' =>7),Array(' id ' =>7, ' name ' = ' Beijing ', ' parent ' =>0),Array(' id ' =>8, ' name ' = ' on ', ' parent ' =>2) );//Find sub-maidenhair//with static variables/*function subtree ($arr, $id =0, $lev =1) {Static $subs = Array (),//descendant array foreach ($arr as $v) {if ($v [' PA Rent '] = = $id) {$v [' lev '] = $lev; $subs [] = $v; For example, find the array (' ID ' =>1, ' name ' = ' Anhui ', ' parent ' =>0), subtree ($arr, $v [' id '], $lev + 1); }} return $subs; }//Print_r (subtree ($area, 0, 1)); */ functionSubtree ($arr,$id=0,$lev=1) { $subs=Array();//Descendants Array foreach($arr as $v) { if($v[' parent '] = =$id) { $v[' lev '] =$lev; $subs[] =$v;//For example, find the array (' ID ' =>1, ' name ' = ' Anhui ', ' parent ' =>0), $subs=Array_merge($subs, Subtree ($arr,$v[' ID '],$lev+1)); } } return $subs; } $tree= Subtree ($area, 0,1); foreach($tree as $v) { Echo str_repeat(' ',$v[' Lev ']),$v[' name '], ' <br/> '; }
Looking for a descendant tree