Heim  >  Artikel  >  Backend-Entwicklung  >  Praxis der mehrdimensionalen Sortierung von PHP-Arrays: von einfachen bis hin zu komplexen Szenarien

Praxis der mehrdimensionalen Sortierung von PHP-Arrays: von einfachen bis hin zu komplexen Szenarien

WBOY
WBOYOriginal
2024-04-29 21:12:02777Durchsuche

Die mehrdimensionale Array-Sortierung kann in Einzelspaltensortierung und verschachtelte Sortierung unterteilt werden. Bei der Einzelspaltensortierung kann die Funktion array_multisort() zum Sortieren nach Spalten verwendet werden. Bei der verschachtelten Sortierung ist eine rekursive Funktion zum Durchlaufen des Arrays und zum Sortieren erforderlich. Zu den praktischen Beispielen gehören die Sortierung nach Produktname und die Sortierung von Verbindungen nach Verkaufsmenge und Preis.

Praxis der mehrdimensionalen Sortierung von PHP-Arrays: von einfachen bis hin zu komplexen Szenarien

Mehrdimensionale Sortierpraxis in PHP-Arrays: Von einfachen zu komplexen Szenarien

Einführung

In PHP ist das Sortieren mehrdimensionaler Arrays normalerweise eine komplexe Aufgabe. Dieses Tutorial führt Sie Schritt für Schritt durch die Sortierung mehrdimensionaler Arrays basierend auf verschiedenen Szenarien, von der einfachen einspaltigen Sortierung bis hin zur komplexen verschachtelten Sortierung.

Einzelspaltige Sortierung

Die einfachste mehrdimensionale Array-Sortierung besteht darin, basierend auf einer einzelnen Spalte zu sortieren. Sie können die array_multisort()-Funktion verwenden:

$arr = [
    ['id' => 1, 'name' => 'John Doe'],
    ['id' => 3, 'name' => 'Jane Smith'],
    ['id' => 2, 'name' => 'Bob Johnson'],
];

array_multisort(array_column($arr, 'id'), SORT_ASC, $arr);

print_r($arr);
// 输出:
// Array
// (
//     [0] => Array
//         (
//             [id] => 1
//             [name] => John Doe
//         )
//     [1] => Array
//         (
//             [id] => 2
//             [name] => Bob Johnson
//         )
//     [2] => Array
//         (
//             [id] => 3
//             [name] => Jane Smith
//         )
// )

Verschachtelte Array-Sortierung

Für verschachtelte Arrays müssen Sie eine rekursive Funktion verwenden, um das Array zu durchlaufen und zu sortieren:

function sortNestedArray($arr, $col, $order) {
    if (!is_array($arr)) {
        return $arr;
    }

    uasort($arr, function($a, $b) use ($col, $order) {
        if ($a[$col] == $b[$col]) {
            return 0;
        }

        return ($a[$col] < $b[$col]) ? -1 : 1;
    });

    foreach ($arr as &$item) {
        if (is_array($item)) {
            $item = sortNestedArray($item, $col, $order);
        }
    }

    return $arr;
}

Praktischer Fall

Fall 1: Klicken Sie auf Verschachteltes Array nach Produktname sortieren

$products = [
    ['id' => 1, 'name' => 'Apple', 'price' => 10],
    ['id' => 2, 'name' => 'Orange', 'price' => 15],
    ['id' => 3, 'name' => 'Banana', 'price' => 5],
];

$sortedProducts = sortNestedArray($products, 'name', SORT_ASC);

// ... 处理排序后的数组 ...

Fall 2: Zusammengesetztes verschachteltes Array nach Verkaufsvolumen und Preis sortieren

$salesData = [
    ['product' => 'Apple', 'count' => 10, 'price' => 10],
    ['product' => 'Orange', 'count' => 15, 'price' => 15],
    ['product' => 'Banana', 'count' => 5, 'price' => 5],
];

usort($salesData, function($a, $b) {
    if ($a['count'] == $b['count']) {
        return ($a['price'] < $b['price']) ? -1 : 1;
    }

    return ($a['count'] < $b['count']) ? 1 : -1;
});

// ... 处理排序后的数据 ...

Das obige ist der detaillierte Inhalt vonPraxis der mehrdimensionalen Sortierung von PHP-Arrays: von einfachen bis hin zu komplexen Szenarien. 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