Fonction recursive

sheist -  
 sheist -
Bonjour,

je souhaiterais créer une arborescence à partir d"un array dont voici la forme :

Array (
[medias] => Array (
[document] => Array (
[pdf] => Array (
)
[txt] => Array (
)
)
[image] => Array (
[medium] => Array (
)
[small] => Array (
)
[tmp] => Array (
)
)
)
)

j'ai donc créer cette fonction récursive:

	function node($node = array(), $parent = '') {
$tmp = '';
if(!empty($node)){
$name = key($node);
$path = $parent ? $parent.'/'.$name : $name;
$tmp .= '
<div class="folder" >
<a href="?f='.$path.'"></a>
<div class="content">';

foreach($node as $child){
$tmp.= $this->node($child, $path);

}

$tmp .= '
</div>
</div>';

}

return $tmp;
}

mais çà ne fonctionne pas ... je vois pas pourquoi, je cherche depuis des heures et je ne vois pas ce qui cloche

coici le résultat que çà me renvoie :

medias
         document
                  pdf
              &nbsp   medium


Vous auriez une idée svp ?

Merci

1 réponse

  1. Pitet Messages postés 2845 Statut Membre 530
     
    Salut,

    Voici une solution possible :
    function node($node = array(), $parent = '') {
    	$tmp = '';
    	
    	foreach($node as $name => $element) {
    		$path = $parent ? $parent . '/' . $name : $name;
    		
    		$tmp .= '
    		<div class="folder">
    			<a  href="?f='.$path.'"></a>
    			<div class="content">';
    			
    		$tmp .= node($element, $path);
    		
    		$tmp .= '
    			</div>
    		</div>';
    	}
    	
    	return $tmp;
    }
    


    Bonne journée
    1
    1. sheist
       
      Merci beaucoup,

      ton exemple fonctionne parfaitement

      Bonne soirée
      0