Hi, May this can help you: <?php
// recusive tree function // function tree($id_parent = 0, $indent = 0) { global $g_tree, $ret_tree; $tt = array(); $x = 0; $loop = 0; foreach($g_tree as $n) { if( $n['id_parent'] == $id_parent) { $tt[$x++] = $loop; } $loop++; } /*-- if there are some parent ids --*/ if( $x != 0){ foreach($tt as $d) { $tmp = array(); foreach($g_tree[$d] as $key => $value) { $tmp[$key] = $value; } $tmp['indent'] = $indent; $ret_tree[] = $tmp; tree($tmp['id'], $indent+1); } } else { return 0; } } // This is your tree structure. It should be sorted by titles // $g_tree = array(); $g_tree[] = array( 'id' => 1, 'id_parent' => 0, 'title' => 'Astronomy' ); $g_tree[] = array( 'id' => 2, 'id_parent' => 1, 'title' => 'Radio-Astronomy' ); $g_tree[] = array( 'id' => 3, 'id_parent' => 2, 'title' => 'Radio-Observatories' ); $g_tree[] = array( 'id' => 4, 'id_parent' => 0, 'title' => 'Physics' ); $g_tree[] = array( 'id' => 5, 'id_parent' => 4, 'title' => 'Lasers' ); $g_tree[] = array( 'id' => 6, 'id_parent' => 4, 'title' => 'Photonics' ); // This the the return array with indents // $ret_tree = array(); tree(0,0); //Print the tree structure with indents // foreach($ret_tree as $cat) { $indent = ''; for($i=0;$i<$cat['indent'];$i++) $indent .= '___'; echo $indent.$cat['title'].'<br>'; } ?> It sould even work to print a subtree eg. tree(1,0) atur _______________________________________________ "Mike Klemin" <[EMAIL PROTECTED]> wrote > Hello, > > If anyone have expamples of displaying tree structure. > > Say I have array $result[x][y] with folloowing data > > X Y["ID"] Y["OWNER"] > 0 1 0 > 1 2 1 > 2 3 2 > 3 4 2 > 4 5 3 > 5 6 2 > 6 7 2 > > > So, I want it displayed like > > ID1 > ID2 > ID3 > ID5 > ID4 > ID6 > ID7 > > ======================== > > Please, help I tryed to do it with recursing but failed. > > There is a test function which shows that php doesnt support recursing > well:- > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php