Je veux trier les valeurs d'un tableau dans l'ordre alphabétique en PHP. Si toutes les valeurs ont commencé avec le même caractère, elles doivent être triées à l'aide de second caractère, etc. Ignorer la sensible à la casse.
Par exemple: P>
before: values[0] = "programming"; values[1] = "Stackoverflow"; values[2] = "question"; values[3] = "answers"; values[4] = "AA Systems"; after: values[0] = "AA Systems"; values[1] = "answers"; values[2] = "programming"; values[3] = "question"; values[4] = "Stackoverflow";
4 Réponses :
voir p>
nacasesort code>: http: //www.php .NET / Manual / fr / Function.natCaseSort.php LI>
-
USort code>: http: //www.php .NET / Manual / fr / Function.Usort.php Avec une fonction de comparaison qui compare strtoolower (a) code> et strtoolower (b) code>. Li>.
ul>
Vous vouliez sûrement dire strcasecmp code> comme comparateur personnalisé? : P
Votre exemple fait deux hypothèses:
que vous ne faites que traiter avec des tableaux simples et 1 dimensions. P> li>
qu'après tri alphabétiquement, votre index se mettra à jour de sorte que le premier élément alphabétiquement soit attribué à la clé 0, etc. p> li> OL>
Compte tenu de ces paramètres, votre solution la plus simple consiste à utiliser la méthode de la matrice qui aboutira aux éléments suivants: p> Il y a Trier () code>. Avec votre exemple: p> s code> prendrait la priorité sur SE code> vs. code> st code>. Pour trier sans cas de sensibilité, vous pouvez utiliser NatCaseSort () Code> , qui produirait ce qui suit avec le tableau donné: p>
Trier est sensible à la casse. Stackoverflow serait placé avant i> réponses.
à partir de la version 5.4.0, vous pouvez simplement utiliser l'un des trier code>, ASORT code>, ksort code>, etc. fonctionne et passez la sort_flag_case code> indicateur. natcasesort( $array ); // Non-associative array
uasort( $array, 'strcasecmp' ); // Associative array
uksort( $array, 'strcasecmp' ); // Associative array, sort by indices
La bonne réponse pour cette question est ksort ($ data, sort_flag_case | Sort_natural); Code>
Vous pouvez utiliser Le deuxième argument est une fonction, qui compare les valeurs. La fonction doit renvoyer -1, 0 ou 1. Voici un modèle que vous pouvez utiliser pour vos fonctions personnalisées. P> uasort () code>: http: // php.net/manual/fr/function.uasort.php $arr = array_values( $arr );