bonjour,

je charge des données à partir d'un fichier xml en utilisant simpleXML.
le fcihier xml a la structure suivante:

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
 
<?xml version="1.0" encoding="ISO8859-1"?>
<data>
<codepays code="AF">
<devise dev="AFA">
<langue val="fr"><continent>Asie</continent><pays>AFGHANISTAN</pays><monnaie>(-> AFN)</monnaie></langue>
<langue val="en"><continent>Asia</continent><pays>AFGHANISTAN</pays><monnaie>(-> AFN)</monnaie></langue>
</devise>
</codepays>
<codepays code="AF">
<devise dev="AFN">
<langue val="fr"><continent>Asie</continent><pays>AFGHANISTAN</pays><monnaie>Afghani</monnaie></langue>
<langue val="en"><continent>Asia</continent><pays>AFGHANISTAN</pays><monnaie>Afghani</monnaie></langue>
</devise>
</codepays>
<codepays code="ZA">
<devise dev="ZAR">
<langue val="fr"><continent>Afrique</continent><pays>AFRIQUE DU SUD</pays><monnaie>Rand</monnaie></langue>
<langue val="en"><continent>Africa</continent><pays>SOUTH AFRICA</pays><monnaie>Rand</monnaie></langue>
</devise>
</codepays>
</data>
Dans mon formulaire, j'affiche les pays par continent.
Je voudrai trier la liste des pays par ordre alphabétique par continent.
je ne sais pas comment faire.

Le code de mon formulaire est le suivant :

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
 
<?php
$lalangue=((isset($lalangue))?$lalangue:"fr");
 
//chargement du fichier xml une fois pour toutes les devises
$xmlpays=simplexml_load_file($_SERVER['DOCUMENT_ROOT'].'/monnaiespays.xml');
 
$continent = array('Afrique', 'Amérique du Nord', 'Amérique du Sud', 'Asie', 'Europe', 'Océanie');
 
<form name="formulaire" method="post">
<p><input type="text" name="montant" class="montant_devise" value="<?php print($montant); ?>"></p>
<p><select name="codepays1" class="select_devise">
<?php 
 
for ($i=0; $i<6; $i++) {
  print("<optgroup label=\"".$continent[$i]."\">");
  foreach($xmlpays->codepays as $myvar) {
    $codepays = $myvar[@code];
    foreach($myvar->children() as $devise) {
      $dev=(string)$devise[@dev];
      foreach($devise->children() as $langue) {
	if(utf8_decode($langue[@val]) == $lalangue) {
	  if(utf8_decode($langue->continent) == $continent[$i]) {
	    print("<option value=\"".$codepays."\" ".(($codepays1==$codepays)?"selected=\"selected\"":"").">".$codepays." - ".utf8_decode($langue->pays)."</option>");
	  }
	}
      }
 
    }
  }
  print("</optgroup>");
}
?>
</select></p>
</p>
</form>
quelqu'un aurait-il une solution ?

merci