Heim >Backend-Entwicklung >PHP-Problem >Welche Methoden gibt es zum Sortieren zweidimensionaler Arrays in PHP?

Welche Methoden gibt es zum Sortieren zweidimensionaler Arrays in PHP?

PHPz
PHPzOriginal
2023-04-26 10:29:281087Durchsuche

In PHP ist ein zweidimensionales Array ein sehr häufig verwendeter Datentyp. Es handelt sich um ein Array, das aus mehreren eindimensionalen Arrays besteht. Beim Umgang mit zweidimensionalen Arrays müssen wir möglicherweise das gesamte Array basierend auf dem Wert eines bestimmten Elements sortieren. In diesem Artikel werden verschiedene Möglichkeiten zur Implementierung der zweidimensionalen Array-Sortierung in PHP vorgestellt.

  1. Verwenden Sie die Funktion array_multisort()

Die Funktion array_multisort() in PHP kann zum Sortieren mehrerer Arrays oder mehrdimensionaler Arrays verwendet werden. In einem zweidimensionalen Array können wir diese Funktion verwenden, um ein bestimmtes eindimensionales Array zu sortieren und dabei die gleiche Schlüssel-Wert-Beziehung wie das entsprechende andere eindimensionale Array beizubehalten.

Beispielcode:

<?php
$students = array(
    array("name" => "Tom", "score" => 80),
    array("name" => "Mary", "score" => 90),
    array("name" => "Jack", "score" => 85),
);

// 按成绩升序排序
$sort_by_score = array();
foreach ($students as $key => $row) {
    $sort_by_score[$key] = $row["score"];
}
array_multisort($sort_by_score, SORT_ASC, $students);

// 输出结果
foreach ($students as $row) {
    echo $row["name"] . " " . $row["score"] . "\n";
}
?>

Im obigen Code wird zunächst ein zweidimensionales Array $students definiert, wobei jedes eindimensionale Array den Namen und die Noten des Schülers enthält. Anschließend geben wir jedem eindimensionalen Array einen eindeutigen Schlüsselwert, damit seine Korrespondenz nach dem Sortieren erhalten bleibt.

Als nächstes verwenden wir eine foreach-Schleife, um das Array $students zu durchlaufen und das Array $sort_by_score basierend auf dem Wert des Elements „score“ zu generieren. Rufen Sie abschließend die Funktion array_multisort() auf, um das Array $students entsprechend dem Array $sort_by_score im Code in aufsteigender Reihenfolge zu sortieren.

  1. Verwenden Sie die Funktion usort()

Mit der Funktion usort() in PHP können Sie die Sortierung des Arrays anpassen und die Sortierregeln nach Ihren eigenen Bedürfnissen definieren. In einem zweidimensionalen Array können wir diese Funktion verwenden, um ein Element nach seinem Wert zu sortieren.

Beispielcode:

<?php
$students = array(
    array("name" => "Tom", "score" => 80),
    array("name" => "Mary", "score" => 90),
    array("name" => "Jack", "score" => 85),
);

// 根据成绩排序
usort($students, function ($a, $b) {
    return $a["score"] < $b["score"] ? 1 : -1;
});

// 输出结果
foreach ($students as $row) {
    echo $row["name"] . " " . $row["score"] . "\n";
}
?>

Im obigen Code verwenden wir die Funktion usort(), um das Array $students zu sortieren. Unter diesen ist der zweite übergebene Parameter eine anonyme Funktion, die zum Definieren der Sortierregeln verwendet wird. In diesem Beispiel sortieren wir die Schüler absteigend nach ihren Noten und geben die Ergebnisse aus.

  1. Verwenden Sie die Funktion uasort()

Im Gegensatz zur Funktion usort() kann die Funktion uasort() in PHP die Schlüssel-Wert-Beziehung von Array-Elementen beibehalten. Das bedeutet, dass nach der Sortierung der Schlüsselwert jedes Elements immer noch derselbe ist wie im vorherigen Array.

Beispielcode:

<?php
$students = array(
    "Tom" => array("score" => 80),
    "Mary" => array("score" => 90),
    "Jack" => array("score" => 85),
);

// 根据成绩排序
uasort($students, function ($a, $b) {
    return $a["score"] < $b["score"] ? 1 : -1;
});

// 输出结果
foreach ($students as $name => $row) {
    echo $name . " " . $row["score"] . "\n";
}
?>

Im obigen Code definieren wir ein assoziatives Array $students, wobei der Schlüsselwert jedes Elements der Name des Schülers und der entsprechende Wert seine Note ist. Verwenden Sie dann die Funktion uasort(), um das Array $students zu sortieren und dabei die Schlüssel-Wert-Beziehungen beizubehalten. Abschließend werden die sortierten Ergebnisse ausgegeben.

Zusammenfassung:

Es gibt viele Möglichkeiten, die zweidimensionale Array-Sortierung in PHP zu implementieren. In diesem Artikel werden drei der gebräuchlicheren Methoden vorgestellt: die Verwendung der Funktion array_multisort(), die Verwendung der Funktion usort() und die Verwendung der Funktion uasort() . Wenn wir diese Funktionen zum Sortieren verwenden, können wir die Sortierregeln entsprechend unseren Anforderungen definieren und die Schlüssel-Wert-Beziehungen der Array-Elemente beibehalten oder nicht beibehalten.

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es zum Sortieren zweidimensionaler Arrays 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