Heim >Backend-Entwicklung >PHP-Tutorial >Wie sortiere ich ein mehrdimensionales PHP-Array nach Sub-Array-Wert?

Wie sortiere ich ein mehrdimensionales PHP-Array nach Sub-Array-Wert?

DDD
DDDOriginal
2024-12-06 00:54:10243Durchsuche

How to Sort a Multidimensional PHP Array by Sub-array Value?

Sortieren eines mehrdimensionalen Arrays nach Unterarray-Wert in PHP

In PHP können Arrays mehrdimensional sein, was bedeutet, dass sie Arrays innerhalb von Arrays enthalten können . Ein häufiger Anwendungsfall besteht darin, solche Arrays basierend auf einem bestimmten Schlüssel innerhalb der verschachtelten Unterarrays zu sortieren.

Sortieren nach einem Zeichenfolgenschlüssel

Betrachten Sie das folgende Array:

$array = [
    [
        'configuration_id' => 10,
        'id' => 1,
        'optionNumber' => '3',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ],
    [
        'configuration_id' => 9,
        'id' => 1,
        'optionNumber' => '2',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ],
    [
        'configuration_id' => 8,
        'id' => 1,
        'optionNumber' => '1',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ]
];

Um dieses Array basierend auf dem Schlüssel „optionNumber“ in aufsteigender Reihenfolge zu sortieren, können wir usort zusammen mit einem anonymen Wert verwenden Funktion:

usort($array, function ($a, $b) {
    return strcmp($a['optionNumber'], $b['optionNumber']);
});

Diese Funktion vergleicht die „optionNumber“-Werte jedes Unterarrays und gibt 1 zurück, wenn der erste Wert größer ist, -1, wenn er kleiner ist, oder 0, wenn sie gleich sind. Bei diesem Vergleich wird die Groß-/Kleinschreibung beachtet.

Sortieren nach einem Ganzzahlschlüssel

Wenn der Schlüssel „optionNumber“ Ganzzahlen enthält, können wir die folgende Funktion verwenden:

usort($array, function ($a, $b) {
    return $a['optionNumber'] - $b['optionNumber'];
});

Dieser Vergleich sortiert das Array in aufsteigender numerischer Reihenfolge Reihenfolge.

Überlegungen

  • Verwenden Sie für PHP-Versionen 5.3 und höher den Raumschiffoperator (<=>) anstelle der Subtraktion, um Überlauf/Kürzung zu verhindern Probleme.
  • Beachten Sie, dass diese Lösungen davon ausgehen, dass der Schlüssel „optionNumber“ in allen Unterarrays vorhanden ist und den Erwartungen entspricht Typ.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein mehrdimensionales PHP-Array nach Sub-Array-Wert?. 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