Bonjour
Me voilà dans un projet PHP.
Voici un tableau que je dois présenter à l'aide d'une fonction récursive :
Et voici ma fonction récursive en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $mytree=array( array("id"=>"1", "name"=>"France", "list"=>array("Marseille", "Montpellier", "Paris")), array("id"=>"2", "name"=>"Canada", "list"=>array( array("id"=>"2a", "name"=>"Quebec", "list"=>array("Quebec", "Montreal", "3-rivieres")), array("id"=>"2b", "name"=>"Ontario", "list"=>array("Ottawa", "Toronto")) )), array("id"=>"3", "name"=>"Belgique", "list"=>array("Namur", "Bruxelles", "Anvers")) ); echo "<pre>"; print_r($mytree); echo "</pre>"; echo "</br></br>";
La fonction tourne très bien. Cependant, une chose que je ne comprend pas : mes appels à la fonction str_repeat ne fonctionnent pas et je n'ai pas de tabulation (ce qui est gênant pour la lecture).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 function display_list2($tree, $can_modify=false, $level=0){ foreach ($tree as $key => $value) { if (is_array($value)) { if (array_key_exists('id', $value)){ echo str_repeat("\t", $level).$value['name']."</br>"; display_list2($value['list'], false, $level+1); } /*else{ foreach($value as $elm) print str_repeat("\t", $level).$elm."</br>"; }*/ } else{ print str_repeat("\t", $level).$value."</br>"; } } }
Comment résoudre ce problème ?
Merci d'avance de vos réponses.
@++
Partager