Heim  >  Artikel  >  Backend-Entwicklung  >  Dimensionale Reise der mehrdimensionalen Array-Sortierung in PHP: von einer Dimension zu mehrdimensional

Dimensionale Reise der mehrdimensionalen Array-Sortierung in PHP: von einer Dimension zu mehrdimensional

王林
王林Original
2024-04-29 21:09:02296Durchsuche

Eindimensionale Arrays werden mit der Funktion sort() sortiert, zweidimensionale Arrays werden mit der Funktion usort() nach internen Elementen sortiert und hochdimensionale Arrays werden mit der Funktion mehrschichtig verschachtelt usort() nach hierarchischen Elementen sortiert Der Schlüssel liegt darin, das Zersetzungsproblem Schicht für Schicht zu lösen.

Dimensionale Reise der mehrdimensionalen Array-Sortierung in PHP: von einer Dimension zu mehrdimensional

Dimensionale Reise der mehrdimensionalen Array-Sortierung in PHP: von einer Dimension zu mehrdimensional

In PHP ist Array eine leistungsstarke Datenstruktur, die verschiedene Datentypen, einschließlich mehrdimensionaler Arrays, speichern kann. Mehrdimensionale Arrays sind Arrays, die andere Arrays enthalten, wodurch wir komplexe Datenstrukturen erstellen können.

Das Sortieren mehrdimensionaler Arrays kann eine herausfordernde Aufgabe sein, aber das Verständnis der dahinter stehenden Konzepte ist entscheidend. In diesem Artikel unternehmen wir eine Reise in die Dimensionen und lernen, wie man mehrdimensionale Arrays mit einer, zwei und höheren Dimensionen mithilfe der in PHP integrierten Funktionen sortiert.

Eindimensionale Array-Sortierung

Eindimensionale Array-Sortierung ist die einfachste Form. Mit der Funktion sort() können wir die Elemente im Array in aufsteigender Reihenfolge sortieren: sort() 函数,我们可以按升序对数组中元素进行排序:

<?php
$arr = [5, 2, 8, 3, 1];
sort($arr);
print_r($arr); // 输出:[1, 2, 3, 5, 8]
?>

二维数组排序

二维数组的排序稍微复杂一些。我们可以根据其内部数组中的元素进行排序。例如,假设我们有一个二维数组,其中包含学生成绩:

<?php
$students = [
    ['name' => 'Alice', 'score' => 90],
    ['name' => 'Bob', 'score' => 80],
    ['name' => 'Carol', 'score' => 70]
];
?>

要根据分数对学生进行降序排序,我们可以使用 usort() 函数:

<?php
usort($students, function($a, $b) {
    return $b['score'] <=> $a['score'];
});
print_r($students); // 输出:[
                        //     ['name' => 'Alice', 'score' => 90],
                        //     ['name' => 'Bob', 'score' => 80],
                        //     ['name' => 'Carol', 'score' => 70]
                        // ]
?>

高维度数组排序

对于更高维度的数组,排序的概念是相同的。例如,让我们考虑一个三维数组,其中包含三个学生班级的信息:

<?php
$classes = [
    [
        ['name' => 'Alice', 'grade' => 'A'],
        ['name' => 'Bob', 'grade' => 'B'],
        ['name' => 'Carol', 'grade' => 'C']
    ],
    [
        ['name' => 'Dave', 'grade' => 'A'],
        ['name' => 'Eve', 'grade' => 'B'],
        ['name' => 'Frank', 'grade' => 'C']
    ],
    [
        ['name' => 'George', 'grade' => 'A'],
        ['name' => 'Helen', 'grade' => 'B'],
        ['name' => 'Ian', 'grade' => 'C']
    ]
];
?>

要根据学生的成绩按降序对所有三个班级进行排序,我们可以使用多层 usort() 函数嵌套:

<?php
usort($classes, function($a, $b) {
    usort($a, function($c, $d) {
        return $d['grade'] <=> $c['grade'];
    });
    usort($b, function($c, $d) {
        return $d['grade'] <=> $c['grade'];
    });
    return $b[0]['grade'] <=> $a[0]['grade'];
});
print_r($classes); // 输出:[
                        //     [
                        //         ['name' => 'Alice', 'grade' => 'A'],
                        //         ['name' => 'Bob', 'grade' => 'B'],
                        //         ['name' => 'Carol', 'grade' => 'C']
                        //     ],
                        //     [
                        //         ['name' => 'Dave', 'grade' => 'A'],
                        //         ['name' => 'Eve', 'grade' => 'B'],
                        //         ['name' => 'Frank', 'grade' => 'C']
                        //     ],
                        //     [
                        //         ['name' => 'George', 'grade' => 'A'],
                        //         ['name' => 'Helen', 'grade' => 'B'],
                        //         ['name' => 'Ian', 'grade' => 'C']
                        //     ]
                        // ]
?>

理解多维数组排序的关键是分解问题,并使用嵌套的 usort()rrreee

Zweidimensionale Array-Sortierung🎜🎜Die Sortierung zweidimensionaler Arrays ist etwas komplizierter. Wir können basierend auf den Elementen in seinem internen Array sortieren. Nehmen wir zum Beispiel an, wir haben ein 2D-Array mit den Noten der Schüler: 🎜rrreee🎜 Um Schüler in absteigender Reihenfolge basierend auf ihren Ergebnissen zu sortieren, können wir die Funktion usort() verwenden: 🎜rrreee🎜Hochdimensional Array-Sortierung🎜 🎜Für höherdimensionale Arrays ist das Sortierkonzept dasselbe. Betrachten wir zum Beispiel ein dreidimensionales Array mit Informationen über die Klassen von drei Schülern: 🎜rrreee🎜 Um alle drei Klassen in absteigender Reihenfolge basierend auf den Noten der Schüler zu sortieren, können wir den mehrstufigen usort() Funktionsverschachtelung: 🎜rrreee🎜Der Schlüssel zum Verständnis der mehrdimensionalen Array-Sortierung besteht darin, das Problem zu zerlegen und verschachtelte <code>usort()-Funktionen zu verwenden, um es Schicht für Schicht zu lösen. Auf diese Weise können wir komplexe Datenstrukturen mit beliebigen Dimensionen einfach sortieren. 🎜

Das obige ist der detaillierte Inhalt vonDimensionale Reise der mehrdimensionalen Array-Sortierung in PHP: von einer Dimension zu mehrdimensional. 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