Bonjour, je dispose d'un tableau (que je ne connais pas à l'avance) et je dois le parcourir de façon recursif.
Je dois afficher le parcours sous forme parent/fille/petite-fille..........
J'y suis presque, mais le nez dans le guidon je n'arrive pas à avoir mon affichage.
Voici ce que je fais
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 $tab = [ "Juridique" => [ "Avocat" => null, "Actes d'achat" => [ "Actes" => null, "Compromis" => null, "Option" => null, "Titres" => null, ], "Baux existant" => null, "Cadastre" => [ "Cadastre" => null, "Cadastre vertical" => null ], "Contrats" => null, "Constitution" => null, "Décision Permis" => null, "TVA" => null ], "Développement" => [ "Info Générale" => [ "Infos" => null, "Photos" => null ], "Archi" => [ "Avant Projet" => null, "Esquisse volumétrique" => null ], "PM / AMO" => null, "Administrations" => [ "Collège" => null, "Commune" => null, "Urbanisme" => null ], "Pré Études" => [ "Amiante" => null, "BREEAM" => null, "Dépollution" => null, "Études de sol" => null, "Essais de sol" => null, "Géomètre" => null, "Ores" => null, "PEB" => null, "Pompiers" => null ], "Programme" => null ] ];
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 echo '<pre>' . PHP_EOL; foreach(walkTree($tab) as $node) { echo str_repeat(' ', $node['depth']) . ' ' .$node['name'] . PHP_EOL; } echo '</pre>' . PHP_EOL; function walkTree($tree, $depth = 0) { foreach ($tree as $key => $value) { yield ['depth' => $depth, 'name' => $key]; if (is_array($value)) { yield from walkTree($value, $depth + 1); } } }
Auriez-vous une piste ?
Merci.
Partager