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

Explication détaillée de la façon dont PHP utilise les fonctions usort et uasort pour implémenter le tri de tableaux multidimensionnels

伊谢尔伦
伊谢尔伦original
2017-06-26 13:05:552174parcourir

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, &#39;my_compare&#39;); 
//输出结果 
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( 
&#39;Sunday&#39; => array(0,&#39;7th&#39;), 
&#39;Friday&#39; => array(5,&#39;5th&#39;), 
&#39;Tuesday&#39;=> array(2,&#39;2nd&#39;));
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, &#39;my_compare&#39;); 
foreach($a as $key => $value) { 
echo "$key : $value[0] $value[1]<br />"; 
} 
//按$a数组的关键字的第二个字符(r,u,u)进行排序 
uksort($a, &#39;my_compare&#39;); 
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!

Déclaration:
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