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

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

Marsh Posté le 30-06-2006 à 16:54:28    

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 !

Reply

Marsh Posté le 30-06-2006 à 16:54:28   

Reply

Marsh Posté le 30-06-2006 à 17:06:00    

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

Reply

Marsh Posté le 30-06-2006 à 17:08:22    

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

Reply

Marsh Posté le 30-06-2006 à 17:11:18    

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..

Reply

Marsh Posté le 30-06-2006 à 17:13:42    

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..

Reply

Marsh Posté le 30-06-2006 à 17:36:13    

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
Reply

Marsh Posté le 30-06-2006 à 17:58:20    

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.  :??:  

Reply

Marsh Posté le 30-06-2006 à 18:33:13    

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 ^^

Reply

Marsh Posté le 30-06-2006 à 18:45:30    

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? ;)

Reply

Marsh Posté le 30-06-2006 à 18:50:36    

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]  

Reply

Marsh Posté le 30-06-2006 à 18:50:36   

Reply

Marsh Posté le 30-06-2006 à 19:01:18    

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

Reply

Marsh Posté le 30-06-2006 à 20:06:38    

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... :/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed