Studiati questo codice:
Codice PHP:
<pre>
<?php
$array = array ( 0 => array ( 'id' => '1', 'name' => 'Nodo1', 'parent' => '0', 'attivo' => '1'),
1 => array ( 'id' => '2', 'name' => 'Nodo2', 'parent' => '0', 'attivo' => '1'),
2 => array ( 'id' => '3', 'name' => 'Nodo3', 'parent' => '2', 'attivo' => '1'),
3 => 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>