Maison > Article > développement back-end > Explication détaillée de la façon dont PHP utilise les fonctions usort et uasort pour implémenter le tri de tableaux multidimensionnels
Quand on veut trier le tableau multidimensionnel, chaque élément du tableau multidimensionnel est un type de tableau, et comment comparer les tailles des deux tableaux ? Cela doit être personnalisé par l'utilisateur (que ce soit pour comparer en fonction du premier élément de chaque tableau ou...).
NumberIndexArray :
bool usort( array &$array, callback $cmp_function )
la fonction usort opère sur le tableau spécifié (paramètre 1) de la manière spécifiée ( paramètre 2) pour trier.
Lorsque nous voulons trier un tableau multidimensionnel, chaque élément du tableau multidimensionnel est un type de tableau, et comment comparer les tailles des deux tableaux ? Cela doit être personnalisé par l'utilisateur (que ce soit pour comparer en fonction du premier élément de chaque tableau ou...).
<?php //定义多维数组 $a = array( array("sky", "blue"), array("apple", "red"), array("tree", "green")); //自定义数组比较函数,按数组的第二个元素进行比较。 function my_compare($a, $b) { if ($a[1] < $b[1]) return -1; else if ($a[1] == $b[1]) return 0; else return 1; } //排序 usort($a, 'my_compare'); //输出结果 foreach($a as $elem) { echo "$elem[0] : $elem[1]<br />"; } ?>
Le résultat est :
sky : blue tree : green apple : red
Tableau associatif :
bool uasort(array &$array, callback $ cmp_function )
bool uksort(array &$array, callback $cmp_function)
uasort, uksort est utilisé de la même manière que usort, où uasort() trie les valeurs du tableau associatif, uksort() trie les clés du tableau associatif.
<?php $a = array( 'Sunday' => array(0,'7th'), 'Friday' => array(5,'5th'), 'Tuesday'=> array(2,'2nd')); function my_compare($a, $b) { if ($a[1] < $b[1]) return -1; else if ($a[1] == $b[1]) return 0; else return 1; } //按$a数组的值的第二个元素(7th,5th,2nd)进行排序 uasort($a, 'my_compare'); foreach($a as $key => $value) { echo "$key : $value[0] $value[1]<br />"; } //按$a数组的关键字的第二个字符(r,u,u)进行排序 uksort($a, 'my_compare'); foreach($a as $key => $value) { echo "$key : $value[0] $value[1]<br />"; } ?>
Le résultat est :
Tuesday : 2 2nd Friday : 5 5th Sunday : 0 7th Friday : 5 5th Sunday : 0 7th Tuesday : 2 2nd
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!