Studiati questo codice:

Codice PHP:
<pre>
<?php 

$array 
= array ( => array ( 'id' => '1''name' => 'Nodo1''parent' => '0''attivo' => '1'),
                      
=> array ( 'id' => '2''name' => 'Nodo2''parent' => '0''attivo' => '1'),
                      
=> array ( 'id' => '3''name' => 'Nodo3''parent' => '2''attivo' => '1'),
                      
=> array ( 'id' => '4''name' => 'Nodo4''parent' => '3''attivo' => '1'));
                      
function 
tree($nodes$level 0) {
    foreach (
$nodes as $node) {
        
$pre str_repeat('   '$level) . '|_ ';
        print(
"{$pre}{$node['name']}\r\n");
        
tree($node['childs'], $level 1);
    }
}

$items = array();
foreach (
$array as $node) {
    
$items[$node['id']] = $node;
    
$items[$node['id']]['childs'] = array();
}
$items[0] = array('name' => 'root''parent' => -1'childs' => array());

foreach (
$items as &$item) {
    
$items[$item['parent']]['childs'][] = & $item;
}

tree($items[0]['childs']);

?>
</pre>