uasort()
Sortieren von Arrays in PHP mit uasort()
Im Kern der meisten Programmieraufgaben steht der Bedarf, Daten zu sortieren. Das Sortieren von Daten ermöglicht es Ihnen, sie effizienter abzurufen und anzuzeigen, was langfristig Zeit und Ressourcen spart. In PHP können Sie Arrays mit der integrierten Funktion uasort() sortieren.
In diesem Artikel werden wir die Funktion uasort(), ihre Syntax und die verschiedenen Parameter, die sie akzeptiert, erkunden. Wir werden auch eingehend untersuchen, wie diese Funktion zum Sortieren von Arrays in PHP verwendet werden kann, und Beispiele für praktische Anwendungen dieser leistungsstarken Funktion bereitstellen.
Was ist uasort()?
uasort() ist eine integrierte PHP-Funktion, die zum Sortieren von Arrays auf benutzerdefinierte Weise verwendet wird. Sie sortiert ein Array, indem sie eine benutzerdefinierte Vergleichsfunktion auf jedes Element des Arrays anwendet, wobei die Beziehung zwischen Schlüsseln und Werten beibehalten wird. Die Funktion ordnet die Elemente im Array dann basierend auf dem Ergebnis der Vergleichsfunktion neu an.
Diese Funktion ist besonders nützlich, wenn Sie assoziative Arrays oder mehrdimensionale Arrays sortieren müssen, da sie es Ihnen ermöglicht, festzulegen, welche Werte verglichen werden sollen und wie dies geschehen soll.
Syntax von uasort()
Die Syntax von uasort() lautet wie folgt:
Syntax von uasort()
uasort(array &$array, callable $comparison_function): boolLassen Sie uns die verschiedenen Teile dieser Syntax aufschlüsseln:
array &$array: Dies ist das zu sortierende Array. Das&-Symbol vor der Variable$arrayzeigt an, dass dies eine Referenz auf das ursprüngliche Array ist, was bedeutet, dass alle Änderungen am sortierten Array auch im ursprünglichen Array widergespiegelt werden.callable $comparison_function: Dies ist die Vergleichsfunktion, die auf die Array-Elemente angewendet werden soll. Die Vergleichsfunktion sollte zwei Argumente$aund$bentgegennehmen, die die zu vergleichenden Elemente darstellen. Die Funktion sollte eine Ganzzahl zurückgeben, die die Beziehung zwischen$aund$bangibt.bool: Dies ist der Rückgabetyp deruasort()-Funktion. Sie gibt bei Erfolgtrueund bei einem Fehlerfalsezurück.
Parameter der Vergleichsfunktion
Die in uasort() verwendete Vergleichsfunktion muss eine Ganzzahl zurückgeben, die die Beziehung zwischen zwei Werten angibt. Die Funktion muss zwei Argumente $a und $b entgegennehmen, die die zu vergleichenden Elemente darstellen. Der Rückgabewert sollte wie folgt sein:
- Wenn
$agrößer als$bist, sollte die Funktion eine positive Ganzzahl zurückgeben. - Wenn
$agleich$bist, sollte die Funktion0zurückgeben. - Wenn
$akleiner als$bist, sollte die Funktion eine negative Ganzzahl zurückgeben.
Beispiele für uasort()
Lassen Sie uns einige Beispiele dafür erkunden, wie uasort() zum Sortieren von Arrays in PHP verwendet werden kann.
Beispiel 1: Sortieren eines einfachen Arrays
Angenommen, wir haben das folgende Array:
Ein PHP-Array
$array = array(3, 1, 4, 1, 5, 9, 2, 6, 5, 3);Um dieses Array in aufsteigender Reihenfolge zu sortieren, können wir die folgende Vergleichsfunktion verwenden:
Sortieren eines Arrays in PHP
function compare($a, $b) {
return ($a < $b) ? -1 : 1;
}Wir können dann die Funktion uasort() wie folgt aufrufen:
Sortieren eines einfachen Arrays mit der uasort()-Funktion
<?php
$array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3];
function compare($a, $b)
{
return $a < $b ? -1 : 1;
}
uasort($array, "compare");
print_r($array);Dies sortiert das Array in aufsteigender Reihenfolge wie folgt:
Array
(
[3] => 1
[1] => 1
[6] => 2
[9] => 3
[0] => 3
[2] => 4
[8] => 5
[4] => 5
[7] => 6
[5] => 9
)Beispiel 2: Sortieren eines assoziativen Arrays nach Wert
Angenommen, wir haben das folgende assoziative Array:
Ein PHP-assoziatives Array
$array = array(
"John" => 32,
"Mary" => 28,
"Bob" => 45,
"Jane" => 28,
"David" => 37
);Um dieses Array nach Wert in aufsteigender Reihenfolge zu sortieren, können wir die folgende Vergleichsfunktion verwenden:
Sortieren eines Arrays in PHP unter Verwendung einer Vergleichsfunktion
function compare($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}Wir können dann die Funktion uasort() wie folgt aufrufen:
Sortieren eines assoziativen Arrays nach Wert mit der uasort()-Funktion in PHP
<?php
$array = [
"John" => 32,
"Mary" => 28,
"Bob" => 45,
"Jane" => 28,
"David" => 37,
];
function compare($a, $b)
{
if ($a == $b) {
return 0;
}
return $a < $b ? -1 : 1;
}
uasort($array, "compare");
print_r($array);Dies sortiert das Array nach Wert in aufsteigender Reihenfolge wie folgt:
array(
"Mary" => 28,
"Jane" => 28,
"John" => 32,
"David" => 37,
"Bob" => 45
);Beispiel 3: Sortieren eines mehrdimensionalen Arrays nach Wert
Angenommen, wir haben das folgende mehrdimensionale Array:
Ein mehrdimensionales Array in PHP
<?php
$array = [["John", 32], ["Mary", 28], ["Bob", 45], ["Jane", 28], ["David", 37]];Um dieses Array nach dem zweiten Wert in jedem Unterarray in aufsteigender Reihenfolge zu sortieren, können wir die folgende Vergleichsfunktion verwenden:
Sortieren eines Arrays nach dem zweiten Wert in jedem Unterarray in PHP unter Verwendung einer Vergleichsfunktion
function compare($a, $b) {
if ($a[1] == $b[1]) {
return 0;
}
return ($a[1] < $b[1]) ? -1 : 1;
}Wir können dann die Funktion uasort() wie folgt aufrufen:
Beispiel zum Sortieren eines mehrdimensionalen Arrays nach Wert in PHP
<?php
$array = [["John", 32], ["Mary", 28], ["Bob", 45], ["Jane", 28], ["David", 37]];
function compare($a, $b) {
if ($a[1] == $b[1]) {
return 0;
}
return ($a[1] < $b[1]) ? -1 : 1;
}
uasort($array, "compare");
print_r($array);Dies sortiert das Array nach dem zweiten Wert in jedem Unterarray in aufsteigender Reihenfolge wie folgt:
Array
(
[1] => Array
(
[0] => Mary
[1] => 28
)
[3] => Array
(
[0] => Jane
[1] => 28
)
[0] => Array
(
[0] => John
[1] => 32
)
[4] => Array
(
[0] => David
[1] => 37
)
[2] => Array
(
[0] => Bob
[1] => 45
)
)Fazit
Das Sortieren von Arrays ist eine wesentliche Aufgabe in vielen Programmieranwendungen, und PHP bietet eine leistungsstarke Funktion zum Sortieren von Arrays auf benutzerdefinierte Weise. Durch die Verwendung der Funktion uasort() können Sie Arrays in PHP mühelos sortieren und sogar assoziative Arrays und mehrdimensionale Arrays sortieren. Durch das Verständnis der Syntax und Parameter dieser Funktion können Sie deren Leistung nutzen, um Daten in Ihren PHP-Anwendungen effizient zu sortieren.
Praxis
Was ist der Zweck der uasort()-Funktion in PHP?