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

  FORUM HardWare.fr
  Programmation
  PHP

  [Php] Classer un array par ordre alphabétique (accents inside)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Php] Classer un array par ordre alphabétique (accents inside)

n°1398235
tania_j
Posté le 30-06-2006 à 16:54:28  profilanswer
 

Bonjour,
 
J'ai plusieurs valeurs dans une array comme suit:
 
$array[] = "france";
$array[] = "Éthiopie";
$array[] = "Bali";
$array[] = "italie";
$array[] = "Île de Man";
 
Mon probleme; est que je peux utiliser n'importe quel sort, les noms commencant par une majuscule avec un accent se retrouveront toujours dernier.. Quelqu'un à une idée pour m'aiguiller ?
 
Je vous en serais extremement reconnaissante !

mood
Publicité
Posté le 30-06-2006 à 16:54:28  profilanswer
 

n°1398241
guitou12
Dev php à mi-temps :D
Posté le 30-06-2006 à 17:06:00  profilanswer
 

Remplace temporairement tes caractères accentués par des non accentués pour effectuer ton tri et ça devrait faire l'affaire !

n°1398244
mIRROR
Chevreuillobolchévik
Posté le 30-06-2006 à 17:08:22  profilanswer
 

tu les indexes et c est les index que tu tries ?

n°1398246
tania_j
Posté le 30-06-2006 à 17:11:18  profilanswer
 

guitou12 a écrit :

Remplace temporairement tes caractères accentués par des non accentués pour effectuer ton tri et ça devrait faire l'affaire !


 
C'est une tres bonne idée, mais comment faire pour remplacer les caractères accentués ? Sachant que je vais avoir plusieurs langues et pays.. je vais pas me taper tous les caractères accentués d'utf8..

n°1398249
tania_j
Posté le 30-06-2006 à 17:13:42  profilanswer
 

mIRROR a écrit :

tu les indexes et c est les index que tu tries ?


 
Si tu parles au niveau de mysql.. la j'ai un autre prob, l'interclassement de la colonne avec ces dites valeur scotch sur "utf8_general_ci"; alors que je veux la mettre en "utf8_bin"; j'ai beau changer ca reste sur ""utf8_general_ci". Je peux donc pas compter sur la base de données..

n°1398255
mIRROR
Chevreuillobolchévik
Posté le 30-06-2006 à 17:36:13  profilanswer
 

avec des expressions regulieres ca pourrait aller plus vite que ce que je propose mais l idee reste la meme (et j y comprends toujours rien a ces :où*ù$^:oùm^p d expressions, promis demain jmy mets :D)
 
tu te créées une petite fonction  
ou tu listes tes caractères accentués
du genre éèê tu les remplaces tous par des e
mais au lieu de remplacer "îles maldives" dans sa valeur tu le met en index $array['iles_de_man'] => "îles de man"
tu ranges ton tableaux par clés et tu affiches les valeurs
 
je sais pas si c est tres clair comme explication mais je crois que l idee est la ^^


Message édité par mIRROR le 30-06-2006 à 17:37:22
n°1398261
Hermes le ​Messager
Breton Quiétiste
Posté le 30-06-2006 à 17:58:20  profilanswer
 

tania_j a écrit :

Bonjour,
 
J'ai plusieurs valeurs dans une array comme suit:
 
$array[] = "france";
$array[] = "Éthiopie";
$array[] = "Bali";
$array[] = "italie";
$array[] = "Île de Man";
 
Mon probleme; est que je peux utiliser n'importe quel sort, les noms commencant par une majuscule avec un accent se retrouveront toujours dernier.. Quelqu'un à une idée pour m'aiguiller ?
 
Je vous en serais extremement reconnaissante !


 
d'abord un coup d'array_map en adéquation avec une fonction de callback qui va remplacer tous tes caractères accentués.
 
Et ensuite un coup de asort.
 
[:spamafote]
 
Franchement je vois pas trop où est le problème.  :??:  

n°1398283
mIRROR
Chevreuillobolchévik
Posté le 30-06-2006 à 18:33:13  profilanswer
 

ah c est marrant on a dit la meme chose mais avec plein de fonctions que je connais pas :D
je comprenais pas trop le truc du callback mais c bidon en fait
j aime bien meme ^^

n°1398290
tania_j
Posté le 30-06-2006 à 18:45:30  profilanswer
 

Hermes le Messager a écrit :

d'abord un coup d'array_map en adéquation avec une fonction de callback qui va remplacer tous tes caractères accentués.
 
Et ensuite un coup de asort.
 
[:spamafote]
 
Franchement je vois pas trop où est le problème.  :??:


 
 
Ok, j'ai compris le principe. Maintenant, va avoir des caracteres russes, chinois, etc. Tu me sors la regexp qui va bien pour remplacer ces caracteres? ;)

n°1398294
mIRROR
Chevreuillobolchévik
Posté le 30-06-2006 à 18:50:36  profilanswer
 

tania_j a écrit :

Ok, j'ai compris le principe. Maintenant, va avoir des caracteres russes, chinois, etc. Tu me sors la regexp qui va bien pour remplacer ces caracteres? ;)


 
au depart c etait juste un probleme d accents ...
tu classes comment des kanjis ?
par ordre alphabetique de leur traduction phonetique  [:petrus dei]  

mood
Publicité
Posté le 30-06-2006 à 18:50:36  profilanswer
 

n°1398296
tania_j
Posté le 30-06-2006 à 19:01:18  profilanswer
 

mIRROR a écrit :

au depart c etait juste un probleme d accents ...
tu classes comment des kanjis ?
par ordre alphabetique de leur traduction phonetique  [:petrus dei]


 
C'etait juste a titres d'exemples ;) Je souligne juste l'aspect "bricolo" de la chose.. si une solution viable pouvait faire son apparition un peu comme les collations sous sql, ca serait mieux mais bon. Visiblement c'est pas possible . Tant pis. Je vais utiliser la solution du:
 
"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ" => "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn"
 
 ;) Merci quand meme

n°1398314
Hermes le ​Messager
Breton Quiétiste
Posté le 30-06-2006 à 20:06:38  profilanswer
 

tania_j a écrit :

C'etait juste a titres d'exemples ;) Je souligne juste l'aspect "bricolo" de la chose.. si une solution viable pouvait faire son apparition un peu comme les collations sous sql, ca serait mieux mais bon. Visiblement c'est pas possible . Tant pis. Je vais utiliser la solution du:
 
"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ" => "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn"
 
 ;) Merci quand meme


 
strtr
 
phpdoc
 
:o :o
 
Ce serait pas mal que ça devienne un réflexe... :/


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

  [Php] Classer un array par ordre alphabétique (accents inside)

 

Sujets relatifs
[PHP / MySQL] Moteur de rechercheAccents/Points d'interrogation en PHP/MySql
Erreur PHP dans l'explorer de JBC[PHP/Javascript] PB lors de l'affichage de caractère dans une page
Retourner la position alphabétique d'une lettreversion client mysql utilisé par PHP
[PHP/MySQL]Rendre une cnx persistante au pool avant la fin du script?FTP en PHP : comment garder la connexion créée ???
[PHP] Clide 
Plus de sujets relatifs à : [Php] Classer un array par ordre alphabétique (accents inside)


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