Mettre en ordre à partir de la lettre ....

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Mettre en ordre à partir de la lettre ....

par Ripat » 08 avr. 2006, 14:50

Curieux et amusant comme demande :wink:

Tu veux donc un classement:

Code : Tout sélectionner

[0] => pq [1] => pa [2] => aq [3] => ab
Le P avant le A et le Q avant le B, c'est bien ça? Et pour toutes les lettres d'un mot?

Dans ce cas, c'est un simple exercice de substitution de lettres avant tri. Une solution possible est celle-ci:
function myOrdString($str){
  $car = 'ABCDEFGHIJKLMNO';
  $ord = 'abcdefghijklmno';
  return strtr(strtoupper($str), $car, $ord);
}

function compare($a, $b){
  return strcmp(myOrdString($a), myOrdString($b));
}


$a = array ('ab', 'aq', 'pa', 'pq');

usort ($a, 'compare');
Basé sur le fait que dans la fonction strcmp() les caractères a --> o auront un "poids" ASCII supérieur aux lettres de P --> Z.

Je doute que ce soit ce que tu recherches mais sait-on jamais...

par Cyrano » 08 avr. 2006, 08:35

C'st toujours possible, mais tu devras créer une fonction personnalisée pour ça : l'opération consistera à séparer les lettres en A et O des lettres entre P et Z puis de trier les deux ensembles séparéments pour regrouper ensuite le second suivi du premier. Avec des expressions régulières, tu devrais arriver à tes fins sans trop de difficultés.

Mettre en ordre à partir de la lettre ....

par auclairp » 08 avr. 2006, 02:07

Bonjour j'aimerais savoir s'il est possible de mettre en ordre alphabétique de A à Z mais de débuter l'ordre par la lettre "P", et de continuer jusqu'à "Z" pour reprendre le "A" jusqu'au "O".

Exemple:

P,Q,R,S,T,U,V,W,X,Y,Z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O

Merci de votre aide.