Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1482 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  ordre alphabétique dans un array ?!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ordre alphabétique dans un array ?!

n°645085
samplay
Posté le 17-02-2004 à 11:18:03  profilanswer
 

Bonjour tout le monde ! :)
 
Voilà mon problème... Je souhaite créer un index (mots avec leurs définitions) pour mon site.  
Voilà pour l'instant ce que j'ai fait :

Code :
  1. <?
  2. $index = array(
  3. 'aaaaa'=>'def aaaaa',
  4. 'zzzzz'=>'def zzzzz',
  5. 'mmmmm'=>'def mmmmm',
  6. 'jjjjj'=>'def jjjjj',
  7. 'rrrgth'=>'def rrrgth',
  8. );
  9. foreach($index as $mot=>$def)
  10. {
  11. echo '&nbsp;&nbsp;&nbsp; - <li><b>'.$mot.'</b> : '.$def; }
  12. ?>


 
Bien sûr, il est possible de les classer à la main par ordre alphabétique directement dans le Array... Mais je voudrais les mettre dans n'importe quel sens, et que PHP me les remette dans l'ordre alphabétique... C'est possible ? Comment je puis faire ?!
Aidez-moi s'il vous plait...
 
Merci @ tous !!
SamplaY

mood
Publicité
Posté le 17-02-2004 à 11:18:03  profilanswer
 

n°645086
deliriumtr​emens
sic transit intestinal...
Posté le 17-02-2004 à 11:22:27  profilanswer
 
n°645119
samplay
Posté le 17-02-2004 à 11:50:02  profilanswer
 

Merci beaucoup deliriumtremens ! :)
La fonction qui m'a servi dans mon cas, c'est ksort(); :)
 
Mais j'ai un petit problème avec cette fonction, elle privilégie les majuscules. Ce qui fait qu'elle trie d'abord les mots commençant par des majuscules en ordre alphabétique, et ensuite ceux commençant par des minuscules.. Y'a moyen de trier les deux en même temps ?!  
 
Merci  
@+
SamplaY


Message édité par samplay le 17-02-2004 à 12:27:23
n°645187
deliriumtr​emens
sic transit intestinal...
Posté le 17-02-2004 à 12:40:25  profilanswer
 

Beuh, suis pas grand connaisseur des arrays, mais a priori si tu places un petit strtolower() dans ton traitement ça devrait le faire.
 
http://www.nexen.net/docs/php/anno [...] olower.php
 
Cela dit ya peut-être des fonctions pour tableaux qui gèrent la chose, hein.
 
EDIT : Genre ksort($tableau, SORT_NUMERIC);


Message édité par deliriumtremens le 17-02-2004 à 12:51:58
n°645228
samplay
Posté le 17-02-2004 à 13:04:13  profilanswer
 

Un strtolower(); ne peut pas le faire, parce que je veux que certaines définitions soient affichées en commençant par une minuscule, et d'autres par une majuscule.  
 
Le SORT_NUMERIC, que je croyais avoir déjà essayé d'ailleurs, permet bien de classer minuscules et majuscules ensemble, mais dans l'ordre inverse... Il commence par le P pour finir avec le A.. Comprends pas moi... J'ai aussi essayé la même chose avec un krsort($tableau, SORT_NUMERIC); mais c'est toujours le même problème...
 
Voici mon code pour ceux qui ne comprendraient pas mon français !! ;-)

Code :
  1. <?
  2. $index = array(
  3. 'ESB'=>'Encéphalopathie Spongiforme Bovine',
  4. 'APBG'=>'Association des Professeurs de Biologie Géologie',
  5. 'EST'=>'Encéphalopathie Spongiforme Transmissible',
  6. 'MCJ'=>'Maladie de Creutzfeldt-Jakob',
  7. 'nvMCJ'=>'nouvelle variante de la Maladie de Creutzfeldt-Jakob',
  8. 'PrP'=>'Protéine Prion',
  9. 'PrPsc'=>'Protéine Prion de forme anormale - sc pour <i>scrapie</i>',
  10. 'PrPc'=>'Protéine Prion de forme normale - c pour <i>cellulaire</i>',
  11. );
  12. ksort($index, SORT_NUMERIC);
  13. reset($index);
  14. while (list ($mot, $def) = each ($index))
  15. {
  16. echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - <b>'.$mot.'</b> : '.$def.'<br>';
  17. }
  18. ?>


Ce qui me donne en HTML :

Code :
  1. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - <b>APBG</b> : Association des Professeurs de Biologie Géologie<br>
  2. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - <b>ESB</b> : Encéphalopathie Spongiforme Bovine<br>
  3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - <b>EST</b> : Encéphalopathie Spongiforme Transmissible<br>
  4. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - <b>MCJ</b> : Maladie de Creutzfeldt-Jakob<br>
  5. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - <b>PrP</b> : Protéine Prion<br>
  6. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - <b>PrPc</b> : Protéine Prion de forme normale - c pour <i>cellulaire</i><br>
  7. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - <b>PrPsc</b> : Protéine Prion de forme anormale - sc pour <i>scrapie</i><br>
  8. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - <b>nvMCJ</b> : nouvelle variante de la Maladie de Creutzfeldt-Jakob<br>


Message édité par samplay le 17-02-2004 à 13:05:17
n°645435
samplay
Posté le 17-02-2004 à 14:47:43  profilanswer
 

j'ai trouvé la fonction uksort(); qui me semble pas mal... Mais je vois pas du tout quelles fonction créer pour gérer ce que je veux... Ya pas quelqu'un qui voit, juste en français, sans forcément la programmer, quoi faire ?!
Merci encore
@+
SamplaY

n°2007507
gentlemich
Posté le 06-07-2010 à 17:50:58  profilanswer
 

Et voilà la solution la plus courte que j'ai trouvée: uksort($array, 'strcasecmp');
 
Vraiment facile!
 
@+
 
Mic
 
http://www.skilto.fr


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  ordre alphabétique dans un array ?!

 

Sujets relatifs
[mysql] SELECT à partir d'un array() sans faire de boucle ?Ordre des noms de repertoire aléatoire ?
[PHP] Classer un tableau de résultats par ordre décroissant[Merise] MCD > cardinalitées d'une assoc. d'ordre 2 ?
[VB] passer un array en parametre ???[JAVA] transformer ResultSet en Vector d'Array
[PERL] Passage de plusieurs array en paramêtre à une fonction[JS] Remplir un select avec le contenu d'un Array
makefile récursif : ordre de compilation???[VB.net] Comment passer un Array String a une fonction sans variable
Plus de sujets relatifs à : ordre alphabétique dans un array ?!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR