cs_flexx
Messages postés42Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention18 août 2010
-
6 mars 2007 à 16:00
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
6 mars 2007 à 16:52
Bonjour
Je souhaite savoir s'il est possible d'effectuer un tri sur un tableau associatif.
Par exemple, si j'ai le tableau suivant :
tab["val2"] = "test1";
tab["val3"] = "test2";
tab["val1"] = "test3";
J'aimerais pourvoir le trier selon les clés pour obtenir :
tab["val1"] = "test3";
tab["val2"] = "test1";
tab["val3"] = "test2";
Ce qui me permettrait d'avoir les valeurs dans l'ordre lors d'un parcours avec une boucle for-in par exemple.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 6 mars 2007 à 16:52
Bonjour,
lu sur selfHTML :
Les tableaux associatifs sont particulièrement indiqués en relation avec des tableaux à plusieurs dimensions. Ils permettent, indépendamment de la position, de rechercher la valeur d'un élément. L'inconvénient en est que les méthodes de l'objet Array ne lui sont pas applicables. De même les tableaux associatifs ne connaissent-ils pas la propriété length. Les éléments d'un tableau associatif ne peuvent toujours être adressés qu'avec leur nom ou par une boucle for-in.
donc tableau.sort() ne fonctionnerait pas.
il faudrait passer par un array intermédiaire...
<script type="text/javascript">
var tab=new Array();
tab["val2"] = "test1";
tab["val3"] = "test2";
tab["val1"] = "test3";
var res=new Array();
for ( var n in tab )
{
res.push(n);
}
res.sort();
for ( var n=0;n<res.length;n++ )
{
alert(res[n]);
}
</script>
si je ne dis pas de conneries...
trier un tableau associatif n'a pas de sens en soi.
stfou
Messages postés450Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention18 avril 20073 6 mars 2007 à 16:12
Pas sûr que ce soit très reglementaire ça... normalement c'est que des chiffres...
sinon pour trier un tableau "normal" de valeur, ya la fonction sort() :
montableau=["b","a",,"0","c"];
montableu=montableau.sort();
ce qui donnera :
montableau=["0","a","b","c"];
<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
document.write("Stfou");
//C'est en programmant que l'on devient programmeur.