<? In PHP // infinite classification, find the subtree $ area = array (0 => array ('cat _ id' => 1, 'cat _ name' => 'beijing ', 'parent _ id' => 0), 1 => array ('cat _ id' => 2, 'cat _ name' => 'guantao County ', 'parent _ id' => 5), 2 => array ('cat _ id' => 3, 'cat _ name' => 'haidian district ', 'parent _ id' => 1), 3 => array ('cat _ id' => 4, 'cat _ name' => 'chaoyang district ', 'parent _ id' => 1), 4 => array ('cat _ id' => 5, 'cat _ name' => 'handan City ', 'parent _ id' => 6), 5 => array ('cat _ id' => 6, 'cat _ name' => 'hebei province ', 'parent _ id' => 0),); // print_r ($ area) // split. Step 1: type the top-level column. To? Function catsort ($ arr, $ parent_id = 0, $ lev= 1) {static $ list = array (); foreach ($ arr as $ V) {if ($ V ['parent _ id'] = $ parent_id) {$ V ['lev'] = $ lev; $ list [] = $ V; catsort ($ arr, $ V ['cat _ id'], $ lev+ 1) ;}return $ list ;}// print_r (catsort ($ area, 0); $ list = catsort ($ area, 0, 1); foreach ($ list as $ v) {echo str_repeat ('', $ V ['lev']), $ V ['cat _ name'], '<br/> ';}
$ V is called in foreach.
In infinitus classification, search for child trees