Heim >Backend-Entwicklung >PHP-Tutorial >Wie sortiere ich mehrdimensionale Arrays basierend auf einem bestimmten Schlüssel in PHP individuell?

Wie sortiere ich mehrdimensionale Arrays basierend auf einem bestimmten Schlüssel in PHP individuell?

Linda Hamilton
Linda HamiltonOriginal
2024-10-20 19:04:02748Durchsuche

How to Custom Sort Multidimensional Arrays Based on a Specific Key in PHP?

Benutzerdefinierte Sortierung mehrdimensionaler Arrays

Das Sortieren mehrdimensionaler Arrays kann eine häufige Aufgabe in der Programmierung sein. Dieser Artikel zeigt, wie man ein solches Array basierend auf einem bestimmten Schlüssel mithilfe der PHP-Funktion usort() sortiert.

Die Aufgabe verstehen

Betrachten Sie das folgende mehrdimensionale Array, in dem jeweils Element stellt einen Datensatz dar:

<code class="php">Array (
    [0] => Array
        (
            [iid] => 1
            [invitee] => 174
            [nid] => 324343
            [showtime] => 2010-05-09 15:15:00
            [location] => 13
            [status] => 1
            [created] => 2010-05-09 15:05:00
            [updated] => 2010-05-09 16:24:00
        )

    [1] => Array
        (
            [iid] => 1
            [invitee] => 220
            [nid] => 21232
            [showtime] => 2010-05-09 15:15:00
            [location] => 12
            [status] => 0
            [created] => 2010-05-10 18:11:00
            [updated] => 2010-05-10 18:11:00
        ))</code>

Sortieren nach einem Schlüssel

Um dieses Array nach dem Schlüssel „Status“ zu sortieren, müssen wir eine Vergleichsfunktion definieren, die bestimmt die Reihenfolge der Elemente.

<code class="php">function cmp($a, $b) {
    if ($a['status'] == $b['status']) {
        return 0;
    }
    return ($a['status'] < $b['status']) ? -1 : 1;
}</code>

Diese Funktion vergleicht die „Status“-Werte zweier Elemente. Wenn die Werte gleich sind, wird 0 zurückgegeben. Wenn das erste Element einen niedrigeren „Status“-Wert als das zweite hat, wird -1 zurückgegeben. Andernfalls wird 1 zurückgegeben.

Mit usort()

Wir können jetzt die Funktion usort() verwenden, um das Array mithilfe unserer Vergleichsfunktion zu sortieren:

<code class="php">usort($array, "cmp");</code>

Dadurch wird das Array in aufsteigender Reihenfolge basierend auf dem Schlüssel „Status“ sortiert. Die Elemente des geänderten Arrays werden entsprechend neu angeordnet.

Anpassen des Vergleichs

Die Vergleichsfunktion kann angepasst werden, um das Array basierend auf einem beliebigen Schlüssel zu sortieren. Ändern Sie einfach die Funktion, um die gewünschten Schlüsselwerte zu vergleichen. Dies bietet Flexibilität beim Sortieren mehrdimensionaler Arrays nach verschiedenen Kriterien.

Das obige ist der detaillierte Inhalt vonWie sortiere ich mehrdimensionale Arrays basierend auf einem bestimmten Schlüssel in PHP individuell?. 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