Classer un array par ordre alphabétique (accents inside) [Php] - PHP - Programmation
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 !
Marsh Posté le 30-06-2006 à 17:08:22
ReplyMarsh 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..
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..
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ùm^p d expressions, promis demain jmy mets )
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 ^^
Marsh Posté le 30-06-2006 à 17:58:20
tania_j a écrit : Bonjour, |
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.
Franchement je vois pas trop où est le problème.
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
je comprenais pas trop le truc du callback mais c bidon en fait
j aime bien meme ^^
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. |
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?
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
Marsh Posté le 30-06-2006 à 19:01:18
mIRROR a écrit : au depart c etait juste un probleme d accents ... |
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
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: |
strtr
phpdoc
Ce serait pas mal que ça devienne un réflexe...
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 !