Maison > développement back-end > tutoriel php > Comment trier un tableau multidimensionnel par une colonne spécifiée en PHP ?

Comment trier un tableau multidimensionnel par une colonne spécifiée en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-29 22:39:33
original
404 Les gens l'ont consulté

How to Sort a Multidimensional Array by a Specified Column in PHP?

Tri d'un tableau multidimensionnel par une colonne spécifiée en PHP

Pour trier un tableau multidimensionnel en PHP par une colonne spécifique, utilisez le dans les fonctions PHP usort ou uasort. La clé du tri est de fournir une fonction de comparaison personnalisée qui détermine l'ordre des éléments du tableau.

Fonction de comparaison personnalisée pour le tri

La fonction de comparaison personnalisée prend deux éléments du tableau en entrée et renvoie un entier :

  • Un entier positif si le premier élément est considéré comme "supérieur" au deuxième.
  • Un entier négatif si le premier élément est considéré comme "inférieur" au second.
  • Zéro si les éléments sont considérés comme égaux.

Tri par une seule colonne

Disons que vous disposez d'un tableau multidimensionnel appelé $data où chaque élément représente un enregistrement avec plusieurs colonnes. Pour trier le tableau par la colonne 'name', utilisez le code suivant :

usort($data, function($a, $b) {
  return strcmp($a['name'], $b['name']);
});
Copier après la connexion

Cette fonction de comparaison personnalisée utilise la fonction strcmp pour comparer les valeurs de la colonne 'name' pour chaque élément. Le tableau trié aura les éléments classés par ordre alphabétique en fonction de la colonne 'name'.

Tri par plusieurs colonnes

Pour trier par plusieurs colonnes , transmettez des paramètres supplémentaires à la fonction de comparaison personnalisée. Par exemple, pour trier par 'numéro' puis 'nom' :

usort($data, function($a, $b) {
  if ($a['number'] == $b['number']) {
    return strcmp($a['name'], $b['name']);
  }
  return $a['number'] - $b['number'];
});
Copier après la connexion

Fonctionnalités avancées

Vous pouvez également spécifier les fonctionnalités avancées suivantes :

  • Inverser Tri : Définissez le deuxième paramètre de la fonction de comparaison sur SORT_DESC pour inverser l'ordre de tri.
  • Projections personnalisées : Si les valeurs des colonnes ne sont pas directement comparables , fournissez une fonction de projection comme troisième paramètre pour les convertir.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal