Bonjour,
Je souhaiterai calculer la moyenne d'un noeud d'un arbre par ses feuilles enfants en récursif.
Je n'ai pas l'habitude de travailler en récursif et je sèche vraiment.
Mon tableau est de la forme ci-dessous :
T[0]['id']=>27 ['libelle']=>Feuille 1 ['valeur']=>? ['noeudEnfant']=>T[0]['id']=>26 ['libelle']=>Feuille 1.1 ['valeur']=>1 ['noeudEnfant']=> null T[1]['id']=>25 ['libelle']=>Feuille 1.2 ['valeur']=>? ['noeudEnfant']=> T[0]['id']=>24 ['libelle']=>Feuille 1.2.1 ['valeur']=>4 ['noeudEnfant']=> null T[1]['id']=>23 ['libelle']=>Feuille 1.2.2 ['valeur']=>1 ['noeudEnfant']=>null T[...]... T[...]...
Comment puis je procéder?
J'arrive bien à faire la somme pour un noeud mais je ne pense pas que cela soit optimisé et de plus c'est la moyenne qui m'interesse.
Fonction pour calculer la somme que j'ai crée :
Help please.
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 function SommeNoeudsRecursif($tabGlobal){ foreach($tabGlobal as $tab){ $tab['valeur']=$this->SommeRecursif($tab); } return $tabGlobal; } function SommeRecursif($noeud){ $somme=0; if(count($noeud['indicateurSuivant'])>0){ foreach($noeud['indicateurSuivant'] as $enfant){ if(count($enfant['indicateurSuivant'])>0){ $somme += $this->SommeRecursif($enfant); } else { $somme += $enfant['valeur']; } } } else { $somme += $noeud['valeur']; } return $somme; }
Partager