65 votes

Comment comparer 2 chaînes de caractères par ordre alphabétique en PHP ?

Ce que dit le titre. Plus précisément, si j'ai

$array1['name'] = 'zoo';
$array2['name'] = 'fox';

Comment puis-je déterminer que par ordre alphabétique $array2 Le nom de la personne devrait figurer au-dessus de $array1 's ?

0 votes

101voto

aviraldg Points 4618

Utilisez [strcmp](http://www.php.net/strcmp) . Si le premier argument de strcmp est lexicographiquement plus petit que le second, alors la valeur retournée sera négative. Si les deux sont égaux, alors elle renverra 0. Et si le premier est lexicographiquement plus grand que le second, alors un nombre positif sera renvoyé.

nb. Vous voulez probablement utiliser [strcasecmp](http://www.php.net/strcasecmp)(string1,string2) qui ignore le cas...

14voto

Gumbo Points 279147

Vous pouvez comparer les deux chaînes de caractères avec strcmp :

Retourne < 0 si str1 est inférieur à str2 ; > 0 si str1 est supérieure à str2 et 0 s'ils sont égaux.

11voto

JMRC Points 717

Je suis un peu en retard (mais je n'étais pas encore programmeur en 2009 :-) Personne ne l'a encore mentionné, mais vous pouvez simplement utiliser les opérateurs que vous utilisez pour les nombres également.

< > <= >= == != et plus

Par exemple :

'a' > 'b' renvoie à false

'a' < 'b' renvoie à true

http://php.net/manual/en/language.operators.comparison.php

IMPORTANT

Il y a une faille, que vous pouvez trouver dans les commentaires ci-dessous.

2voto

Kzqai Points 7484

J'utilise souvent natsort ( Tri naturel ), puisque je souhaite généralement conserver le tableau pour une utilisation ultérieure.

Exemple :

natsort($unsorted_array);

var_dump($usorted_array); // will now be sorted.

1voto

seengee Points 9367

trier

EDIT vient de réaliser des valeurs à partir de tableaux différents, pourrait-elle matrice_fusion d'abord mais pas sûr que ce soit ce que vous voulez

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X