Gestion des données triées est toujours plus facile pour extraire des informations spécifiques, sinon vous devez itérer à travers chaque élément du tableau un par un.
Par exemple, supposons que vous stockiez les notes de différents étudiants dans un tableau ou une table. Si les données ne sont pas triées par les notes obtenues, vous devez vérifier les notes de chaque élève de la classe pour déterminer qui obtient les scores les plus élevés et les plus bas. Si le tableau a été trié de bas à haut par notes, vous pouvez connaître le score le plus bas en vérifiant simplement les notes de l'étudiant.
Cet article introduira les méthodes de tri de tableau PHP suivantes:
Trier le tableau par valeur
Trier le tableau associatif
Trier les éléments du tableau par valeur à l'aide de fonctions définies par l'utilisateur
Array de tri des clés
Triage du tableau multidimensionnel PHP
Tri avec des fonctions définies par l'utilisateur
Sort multiple en colonne
Le tri le rend très facile et efficace pour de nombreuses tâches qui nécessitent l'accès ou l'obtention d'un ensemble de données spécifique. Dans ce tutoriel, nous apprendrons à trier les tableaux de différents types à l'aide de fonctions PHP intégrées.
Dans PHP, le tri des tableaux par valeurs d'élément est très facile. Vous pouvez choisir de conserver ou de éliminer les associations de valeurs clés, ou vous pouvez définir vos propres fonctions pour décider comment trier les éléments. Je vais vous montrer comment le faire dans cette section de ce tutoriel.
Vous pouvez utiliser la fonction array_multisort()
, qui peut trier les tableaux multidimensionnels basés sur plusieurs colonnes ou valeurs multidimensionnelles. Il vous suffit de créer un tableau contenant les valeurs clés que vous souhaitez utiliser pour le tri. Après cela, passez le drapeau de tri.
L'exemple suivant devrait vous donner une compréhension claire:
$players = [ [ 'name' => 'Adam', 'score' => 70, 'health' => 80 ], [ 'name' => 'Joey', 'score' => 60, 'health' => 90 ], [ 'name' => 'Monty', 'score' => 70, 'health' => 45 ], [ 'name' => 'Andrew', 'score' => 90, 'health' => 80 ], [ 'name' => 'Sally', 'score' => 60, 'health' => 85 ], [ 'name' => 'Amanda', 'score' => 98, 'health' => 50 ], [ 'name' => 'James', 'score' => 50, 'health' => 50 ] ]; $p_score = array_column($players, 'score'); $p_health = array_column($players, 'health'); array_multisort($p_score, SORT_DESC, $p_health, SORT_ASC, $players);
Nous avons un tableau multidimensionnel qui stocke le nom du joueur , score et Santé . Nous utilisons les fonctions $p_score
et array_multisort()
. Cela aura un impact sur le résultat final. Le $p_score
que nous passons sera trié par ordre décroissant. Cela mettra Amanda en haut car elle a le score le plus élevé. Maintenant, les éléments du tableau $players
seront également réarrangés afin que la santé d'Amanda soit en haut de $players
.
En d'autres termes, les tableaux $p_score
sont organisés par ordre décroissant. Les valeurs dans d'autres tableaux seront ensuite réorganisées pour correspondre également à cette commande. Par conséquent, l'ordre sera amanda , Andrew , Adam , Monty et ainsi de suite.
une fois qu'il passe par tout le tableau $p_health
. Vous remarquerez que Adam et Monty ont les mêmes scores. Par conséquent, leur position finale sera déterminée par leur santé, qui doit être triée par ordre croissant. La santé de Monty est inférieure à Adam , donc il sera en avance sur Adam . L'Ordre des joueurs deviendra désormais Amanda , Andrew , Monty , Adam et ainsi de suite.
Tous les autres conflits de valeurs sont résolus de manière similaire. Voici le résultat final que vous obtiendrez après le tri du tableau:
$players = [ [ 'name' => 'Adam', 'score' => 70, 'health' => 80 ], [ 'name' => 'Joey', 'score' => 60, 'health' => 90 ], [ 'name' => 'Monty', 'score' => 70, 'health' => 45 ], [ 'name' => 'Andrew', 'score' => 90, 'health' => 80 ], [ 'name' => 'Sally', 'score' => 60, 'health' => 85 ], [ 'name' => 'Amanda', 'score' => 98, 'health' => 50 ], [ 'name' => 'James', 'score' => 50, 'health' => 50 ] ]; $p_score = array_column($players, 'score'); $p_health = array_column($players, 'health'); array_multisort($p_score, SORT_DESC, $p_health, SORT_ASC, $players);
peut être évident maintenant, mais je veux toujours souligner que sort()
appelle un tableau séparé. Voici un exemple:
print_r($players); /* Array ( [0] => Array ( [name] => Amanda [score] => 98 [health] => 50 ) [1] => Array ( [name] => Andrew [score] => 90 [health] => 80 ) [2] => Array ( [name] => Monty [score] => 70 [health] => 45 ) [3] => Array ( [name] => Adam [score] => 70 [health] => 80 ) [4] => Array ( [name] => Sally [score] => 60 [health] => 85 ) [5] => Array ( [name] => Joey [score] => 60 [health] => 90 ) [6] => Array ( [name] => James [score] => 50 [health] => 50 ) ) */
Si votre objectif est de trier les deux tableaux dans l'ordre croissant, utilisez sort()
pour ces deux tableaux séparément.
Dans ce tutoriel, je vous ai montré différentes fonctions en PHP qui peuvent être utilisées pour trier les tableaux par des touches ou des valeurs. Nous avons également appris à trier les tableaux par clé ou valeur en utilisant nos propres fonctions de tri personnalisées et les fonctions uksort()
et uasort()
. La dernière section explique comment trier toutes les valeurs dans un tableau multidimensionnel en utilisant uniquement des champs spécifiques.
J'espère que vous avez appris quelque chose de nouveau à partir de ce tutoriel. Si vous avez des questions ou des suggestions, veuillez me le faire savoir dans les commentaires. La meilleure façon d'apprendre est d'essayer de créer vos propres exemples, en utilisant ces fonctions pour trier les tableaux.
Cet article a été mis à jour et contient des contributions de Monty Shokeen. Monty est un développeur complet qui aime également écrire des tutoriels et apprendre de nouvelles bibliothèques JavaScript.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!