Zum Inhalt springen

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()

php
uasort(array &$array, callable $comparison_function): bool

Lassen Sie uns die verschiedenen Teile dieser Syntax aufschlüsseln:

  • array &$array: Dies ist das zu sortierende Array. Das &-Symbol vor der Variable $array zeigt 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 $a und $b entgegennehmen, die die zu vergleichenden Elemente darstellen. Die Funktion sollte eine Ganzzahl zurückgeben, die die Beziehung zwischen $a und $b angibt.
  • bool: Dies ist der Rückgabetyp der uasort()-Funktion. Sie gibt bei Erfolg true und bei einem Fehler false zurü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 $a größer als $b ist, sollte die Funktion eine positive Ganzzahl zurückgeben.
  • Wenn $a gleich $b ist, sollte die Funktion 0 zurückgeben.
  • Wenn $a kleiner als $b ist, 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

php
$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

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
<?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:


console
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

php
$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

php
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
<?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:


console
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
<?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

php
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
<?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:


console
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?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.