Datenbankabfrageergebnisse können manchmal nicht direkt verwendet werden, z. B. die mit der in-Anweisung in MySQL erhaltenen Ergebnisse. Daher müssen die Ergebnisse auf irgendeine Weise sortiert werden.
Beispiel 4. Datenbankergebnisse sortieren
In diesem Beispiel stellt jede Zelle im Datenarray eine Zeile in einer Tabelle dar. Dies ist eine typische Sammlung von Daten, die in einer Datenbank aufgezeichnet werden.
Die Daten im Beispiel lauten wie folgt:
Band |
-------+--------
67 |. 2
86 |. 1
85 |. 6
98 |. 2
86 |. 6
67 |. 7
Die Daten werden alle in einem Array mit dem Namen data gespeichert. Dies wird normalerweise über eine Schleife wie mysql_fetch_assoc() aus der Datenbank abgerufen.
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>
http://sucai.knowsky.com/
In diesem Beispiel wird der Band absteigend und die Auflage aufsteigend sortiert.
Jetzt haben Sie ein Array mit Zeilen, aber array_multisort() erfordert ein Array mit Spalten. Verwenden Sie also den folgenden Code, um die Spalten abzurufen und sie dann zu sortieren.
// Holen Sie sich die Liste der Spalten
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
// Ordnen Sie die Daten in absteigender Reihenfolge nach Volumen und in aufsteigender Reihenfolge nach Ausgabe an
// $data als letzten Parameter verwenden, nach gemeinsamem Schlüssel sortieren
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
Die Datensammlung ist nun sortiert und die Ergebnisse lauten wie folgt:
Band |
-------+--------
98 |. 2
86 |. 1
86 |. 6
85 |. 6
67 |. 2
67 |. 7