Heim > Artikel > Backend-Entwicklung > Praxis der mehrdimensionalen Sortierung von PHP-Arrays: von einfachen bis hin zu komplexen Szenarien
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.
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!