J'ai un champ 'noms', dans le quel j'insère des ... noms !
Je voudrais classer ces noms par ordre alphabétique (ça c'est simple, pas de
souci).
Là où ça se complique, c'est que j'ai besoin de cet ordre alphabétique pour
tous les noms, y compris ceux à particule, mais sans tenir compte de la
particule.
Exemple:
Soit les noms suivants:
Balzac
de Noailles
Diderot
d'Alembert
Un classement par ordre alphabétique me donne:
Balzac
d'Alembert
de Noailles
Diderot
J'ai besoin de l'ordre suivant, sachant que la particule n'est pas détachée
du nom (elle est dans le mm champ):
d'Alembert
Balzac
Diderot
de Noailles
Donne bien le résultat souhaité. Mais je ne sais pas s'il y a d'autres cas particuliers à prendre en compte, donc s'il faut adapter encore l'expression rationnelle ($expr).
-- Christophe PEREZ Écrivez moi sans _faute !
Le Sun, 16 Nov 2003 00:02:51 +0000, Eric a écrit:
Une piste ?
Faire ta propre fonction de comparaison et l'utiliser dans un usort().
Exemple :
function compare($a,$b) {
$expr = "/^.*[ ']/";
if ( $a == $b ) return 0;
return (preg_replace($expr,"",$a) < preg_replace($expr,"",$b)) ? -1 : 1;
}
Donne bien le résultat souhaité.
Mais je ne sais pas s'il y a d'autres cas particuliers à prendre en
compte, donc s'il faut adapter encore l'expression rationnelle ($expr).
Donne bien le résultat souhaité. Mais je ne sais pas s'il y a d'autres cas particuliers à prendre en compte, donc s'il faut adapter encore l'expression rationnelle ($expr).