Maison >développement back-end >tutoriel php >Comment puis-je trier un tableau multidimensionnel en PHP à l'aide de « usort() » et « uasort() » ?
De nombreuses situations surviennent lorsqu'il est nécessaire de trier un tableau multidimensionnel. Ceci peut être réalisé grâce à l'utilisation d'une fonction de comparaison définie par l'utilisateur dans la fonction usort().
Tri par une seule clé à l'aide de usort()
Pour trier le tableau donné par la valeur de la clé "order", nous pouvons définir une fonction de tri comme suit :
function sortByOrder($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; } usort($myArray, 'sortByOrder');
Alternativement, nous pouvons utiliser un anonyme fonction :
usort($myArray, function($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; });
Tri multidimensionnel
Cette approche peut être étendue pour trier des tableaux multidimensionnels. Par exemple, pour trier par « ordre » puis par « sous-ordre » :
usort($myArray, function($a, $b) { $retval = $a['order'] <=> $b['order']; if ($retval == 0) { $retval = $a['suborder'] <=> $b['suborder']; } return $retval; });
Préserver les associations de clés avec uasort()
Si vous devez conserver les associations de clés , utilisez uasort(). Pour comparaison, reportez-vous à la comparaison du manuel des fonctions de tri de tableaux.
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!