Tri d'un tableau associatif [Résolu]

cs_flexx
Messages postés
42
Date d'inscription
vendredi 28 novembre 2003
Dernière intervention
18 août 2010
- 6 mars 2007 à 16:00 - Dernière réponse : cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 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.

Merci d'avance
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
- 6 mars 2007 à 16:52
3
Merci
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.

<hr />


Cordialement            Bul        

Merci cs_bultez 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de cs_bultez
stfou
Messages postés
454
Date d'inscription
samedi 16 avril 2005
Dernière intervention
18 avril 2007
- 6 mars 2007 à 16:12
0
Merci
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.
Commenter la réponse de stfou

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.