Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung, wie PHP die Funktionen usort und uasort verwendet, um mehrdimensionale Array-Sortierung zu implementieren

Detaillierte Erklärung, wie PHP die Funktionen usort und uasort verwendet, um mehrdimensionale Array-Sortierung zu implementieren

伊谢尔伦
伊谢尔伦Original
2017-06-26 13:05:552192Durchsuche

Wenn wir das mehrdimensionale Array sortieren möchten, ist jedes Element des mehrdimensionalen Arrays ein Array-Typ, und wie vergleichen wir die Größen der beiden Arrays? Dies muss vom Benutzer angepasst werden (ob basierend auf dem ersten Element jedes Arrays verglichen werden soll oder ...).

NummerIndexArray:
bool usort( array &$array, callback $cmp_function )
usort-Funktion bearbeitet das angegebene Array (Parameter 1) auf die angegebene Weise ( Parameter 2) zum Sortieren.
Wenn wir ein mehrdimensionales Array sortieren möchten, ist jedes Element des mehrdimensionalen Arrays ein Array-Typ. Wie vergleichen wir die Größe der beiden Arrays? Dies muss vom Benutzer angepasst werden (ob basierend auf dem ersten Element jedes Arrays verglichen werden soll oder ...).

<?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 />"; 
} 

?>

Das Ergebnis ist:

sky : blue 
tree : green 
apple : red

Assoziatives Array:
bool uasort(array &$array, callback $ cmp_function )
bool uksort(array &$array, callback $cmp_function)

uasort, uksort wird genauso verwendet wie usort, wobei uasort() die Werte der sortiert assoziatives Array, uksort() sortiert die Schlüssel des assoziativen Arrays.

<?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 />"; 
} 

?>

Das Ergebnis ist:

Tuesday : 2 2nd 
Friday : 5 5th 
Sunday : 0 7th 
Friday : 5 5th 
Sunday : 0 7th 
Tuesday : 2 2nd

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie PHP die Funktionen usort und uasort verwendet, um mehrdimensionale Array-Sortierung zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn