ciao a tutti
Piccolo grande problema con gli alberi binari

mi trovo in una situazione di avere un array di questo tipo

Codice PHP:
Array
(
    [
1] => Array
        (
            [
id] => 1
            
[name] => Nodo1
            
[parent] => 0
            
[attivo] => 1
        
)

    [
2] => Array
        (
            [
id] => 2
            
[name] => Nodo2
            
[parent] => 0
            
[attivo] => 1
        
)

    [
3] => Array
        (
            [
id] => 3
            
[name] => Nodo3 
            
[parent] => 2
            
[attivo] => 1
        
)

    [
4] => Array
        (
            [
id] => 4
            
[name] => Nodo4
            
[parent] => 3
            
[attivo] => 1
        
)


e vorrei creare un albero binario così

codice:
 |_ Nodo1
 |_ Nodo2 
    |_ Nodo3 
        |_ Nodo4
partendo dal presupposto che le strutture gerarchiche su db non ho intenzione di usarle ma voglio farlo con la ricorsività per ovvi motivi

io sono arrivato qui ma non funzica

Codice PHP:
    function BuildList($list,$parent 999999)
    {
        
// Reset delle variabili
        
reset($list);
        unset(
$temp_array);
        unset(
$array);
                
        foreach(
$list as $k => $v)
        {          
            if (( 
$v['parent'] == || $v['id'] == $parent ) ) 
            {
                    
$temp_array[$v['id']] = $v;  // Prelevo i nodi genitori               
                
}  
                elseif(
$v['parent'] !=0  
                {
              
$array[$v['id']] = $v;  // Prelevo i nodi figli
                
}
        
        } 
// End-foreach
                
        
echo '<pre>'print_r($temp_array); echo '</pre>'//DEBUG
        
echo '<pre>'info($array); echo '</pre>';//DEBUG
                  
        
if (isset($temp_array)) 
        {
            foreach(
$temp_array as $k => $v)
            {               
               
$array[$k] = BuildList($array,$k);
            }      
        }
        
        return (isset(
$array) ? $array false);
        
    } 
// End-Method 
qualche anima pia che sa dirmi cosa sbaglio e come posso sistemare il problema dei nodi del figlio ??
grazie in anticipo a tutti