Bonjour à tous!
Comme indiqué dans le titre, j'aimerais trier un xml en fonction d'un champs. Voici mon xml (que je récupère avec une url) :
J'aimerais trier chaque section <Candidat> en fonction de la valeur de<NbVoix>.
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 <Election> <Tours> <Tour> <NumTour>1</NumTour> <Resultats> <Candidats> <Candidat> <NumPanneauCand>1</NumPanneauCand> <NomPsn>HORTALA</NomPsn> <NbVoix>1235187</NbVoix> <RapportInscrit>2,53</RapportInscrit> </Candidat> <Candidat> <NumPanneauCand>2</NumPanneauCand> <NomPsn>MIREPOIX</NomPsn> <NbVoix>6938479</NbVoix> <RapportInscrit>14,19</RapportInscrit> </Candidat> <Candidat> [...]
Ici, la première section <Candidat> devrait se retrouver sous la seconde car 6938479>1235187
J'ai une piste avec ce sujet : https://www.developpez.net/forums/d5...xml-trier-xml/
Dont voici le code inspiré :
Mais ça n'a pas l'air de marcher...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function sort_by_score($candidat1, $candidat2) { if ($candidat1->NbVoix == $candidat2->NbVoix) { return 0; } else { return ($candidat1->NbVoix < $candidat2->NbVoix) ? -1 : 1; } } $xml = simplexml_load_file('url'); $NbrVoix = $xml->xpath('//Candidat'); usort($NbrVoix, 'sort_by_score'); foreach ($NbrVoix as $p) { echo $p . '<br />'; }
Merci par avance pour vos suggestions !
Bonne journée.
Partager