Heim  >  Artikel  >  Backend-Entwicklung  >  So sortieren Sie ein zweidimensionales Array in PHP

So sortieren Sie ein zweidimensionales Array in PHP

PHPz
PHPzOriginal
2023-04-17 16:37:235049Durchsuche

In der Entwicklung müssen wir Daten häufig sortieren, um sie besser präsentieren und verwenden zu können. Bei zweidimensionalen Arrays kann die Sortierung nach einem bestimmten Datenfeld erfolgen. In diesem Artikel wird erläutert, wie Sie mit PHP ein zweidimensionales Array sortieren.

1. Verwenden Sie die Funktion sort(), um ein zweidimensionales Array zu sortieren.

sort() ist eine integrierte Funktion von PHP, die die Werte im Array in aufsteigender Reihenfolge sortieren kann. Beim Sortieren eines zweidimensionalen Arrays sortiert die Funktion sort() standardmäßig nach dem ersten Feld des Arrays. Zum Beispiel haben wir ein zweidimensionales Array:

$arr = array(
     array('id'=>2,'name'=>'li', 'age'=>20),
     array('id'=>1,'name'=>'zhang', 'age'=>22),
     array('id'=>3,'name'=>'wang', 'age'=>18)
);

Wir können die Funktion sort() verwenden, um nach dem ID-Feld zu sortieren:

sort($arr);
print_r($arr);

Das Ausgabeergebnis ist:

Array
(
    [0] => Array
        (
            [age] => 18
            [id] => 3
            [name] => wang
        )

    [1] => Array
        (
            [age] => 20
            [id] => 2
            [name] => li
        )

    [2] => Array
        (
            [age] => 22
            [id] => 1
            [name] => zhang
        )

)

Es ist ersichtlich, dass nach dem Sortieren nach der ID werden die Elemente in aufsteigender Reihenfolge sortiert.

2. Verwenden Sie die Funktion usort(), um das zweidimensionale Array zu sortieren.

Die Funktion sort() kann nur nach dem ersten Feld des Arrays sortieren. Wenn Sie nach anderen Feldern sortieren möchten, müssen Sie die Funktion usort verwenden ()-Funktion. Die Funktion usort() muss eine benutzerdefinierte Rückruffunktion übergeben, um die Sortierregeln anzugeben. Zum Beispiel möchten wir nach dem Altersfeld sortieren:

function cmp($a, $b)
{
    if ($a['age'] == $b['age']) {
        return 0;
    }
    return ($a['age'] <$ b[&#39;age&#39;]) ? -1 : 1;
}

usort($arr, "cmp");
print_r($arr);

Das Ausgabeergebnis lautet:

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => wang
            [age] => 18
        )

    [1] => Array
        (
            [id] => 2
            [name] => li
            [age] => 20
        )

    [2] => Array
        (
            [id] => 1
            [name] => zhang
            [age] => 22
        )

)

Es ist ersichtlich, dass nach der Sortierung nach dem Altersfeld die Elemente im Array in aufsteigender Reihenfolge ihres Alters angeordnet sind.

3. Verwenden Sie die Funktion array_multisort(), um zweidimensionale Arrays zu sortieren. Die Funktion array_multisort() ist eine sehr leistungsstarke Sortierfunktion, die zweidimensionale Arrays nach mehreren Bedingungen sortieren kann. Wenn Sie nach mehreren Feldern sortieren möchten, können Sie die Funktion array_multisort() verwenden. Zum Beispiel möchten wir zuerst nach dem Altersfeld sortieren, dann nach der ID sortieren:

$ages = array();
$ids = array();
foreach ($arr as $key => $value) {
    $ages[$key] = $value['age'];
    $ids[$key] = $value['id'];
}
array_multisort($ages, SORT_ASC, $ids, SORT_ASC, $arr);

print_r($arr);

Das Ausgabeergebnis ist:

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => wang
            [age] => 18
        )

    [1] => Array
        (
            [id] => 2
            [name] => li
            [age] => 20
        )

    [2] => Array
        (
            [id] => 1
            [name] => zhang
            [age] => 22
        )

)

Es ist ersichtlich, dass nach dem Sortieren nach dem Altersfeld und dem id-Feld, die Elemente im Array sind in aufsteigender Reihenfolge nach Alter angeordnet. Wenn das Alter gleich ist, wird in aufsteigender Reihenfolge nach ID sortiert.

Zusammenfassung:

In diesem Artikel werden drei Methoden zum Sortieren zweidimensionaler Arrays vorgestellt, wobei die Funktionen sort(), usort() und array_multisort() verwendet werden. Welche Methode in der Entwicklung zu wählen ist, hängt von den spezifischen Anforderungen ab. Ich hoffe, dieser Artikel ist für alle hilfreich.

Das obige ist der detaillierte Inhalt vonSo sortieren Sie ein zweidimensionales Array in PHP. 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