Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mehrdimensionale Arrays in PHP nach einem oder mehreren Schlüsseln sortieren?

Wie kann ich mehrdimensionale Arrays in PHP nach einem oder mehreren Schlüsseln sortieren?

DDD
DDDOriginal
2025-01-05 12:34:43884Durchsuche

How can I sort multi-dimensional arrays in PHP by one or more keys?

Mehrdimensionale Arrays nach Wert sortieren

Bei der Arbeit mit mehrdimensionalen Arrays kann es erforderlich sein, das Array nach dem Wert eines bestimmten Schlüssels zu sortieren. Wenn Sie beispielsweise ein Array mit einer Liste von Bildern haben, möchten Sie diese möglicherweise nach Datum oder Größe sortieren.

Sortieren nach einem einzelnen Schlüssel

Um ein Array nach einem einzelnen Schlüssel zu sortieren Mit der Taste können Sie die Funktion usort() verwenden. Diese Funktion benötigt zwei Parameter: das zu sortierende Array und eine Sortierfunktion. Die Sortierfunktion muss zwei Parameter annehmen, die die beiden zu vergleichenden Elemente darstellen.

Nehmen wir zum Beispiel an, wir haben das folgende Array und möchten es nach dem Wert des Schlüssels „order“ sortieren:

Array
(
    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 3
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )
)

Um dieses Array zu sortieren, können wir die folgende Sortierfunktion verwenden:

function sortByOrder($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
}

Dann können wir diese Funktion an usort() übergeben Funktion:

usort($myArray, 'sortByOrder');

Nach dem Sortieren wird das Array nach dem Wert des „order“-Schlüssels geordnet:

Array
(
    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 3
        )
)

Sortieren nach mehreren Schlüsseln

Zum Sortieren Um ein Array mit mehreren Schlüsseln zu erstellen, können Sie den folgenden Ansatz verwenden:

  1. Erstellen Sie eine Sortierfunktion, die die Werte des ersten vergleicht Schlüssel.
  2. Wenn die Werte des ersten Schlüssels gleich sind, vergleichen Sie die Werte des zweiten Schlüssels.
  3. Vergleichen Sie die Werte der nachfolgenden Schlüssel weiter, bis ein Unterschied festgestellt wird.

Nehmen wir zum Beispiel an, wir haben das folgende Array und möchten es nach dem Wert des „order“-Schlüssels und dann nach dem Wert des „title“ sortieren. Schlüssel:

Array
(
    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 1
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Free
            [order] => 2
        )

    [3] => Array
        (
            [hashtag] => c1ede105cf8a54bbfb9f06542a9971bb
            [title] => Ready
            [order] => 3
        )
)

Um dieses Array zu sortieren, können wir die folgende Sortierfunktion verwenden:

Das obige ist der detaillierte Inhalt vonWie kann ich mehrdimensionale Arrays in PHP nach einem oder mehreren Schlüsseln sortieren?. 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