Lassen Sie uns zunächst über die Anforderungen sprechen: Es gibt 4 Felder in der Datenbank, nämlich ID, Volume, Edition und Name. Es ist erforderlich, die Abfrageergebnisse von groß nach klein nach Volume+Edition zu sortieren.
Das Folgende ist die Funktion array_multisort
array_multisort() kann zum gleichzeitigen Sortieren mehrerer Arrays oder zum Sortieren mehrdimensionaler Arrays nach einer bestimmten Dimension oder mehreren Dimensionen verwendet werden.
Assoziative (String-)Schlüsselnamen bleiben unverändert, numerische Schlüsselnamen werden jedoch neu indiziert.
Flag Sortierreihenfolge:
SORT_ASC – Sortierung in aufsteigender Reihenfolge
SORT_DESC – Sortierung in absteigender Reihenfolge
Flag Sortiertyp:
SORT_REGULAR – Vergleichen Sie Elemente auf die übliche Weise
SORT_NUMERIC – Elemente anhand numerischer Werte vergleichen
SORT_STRING – Elemente anhand von Zeichenfolgen vergleichen
Nach jedem Array können nicht zwei ähnliche Sortierflags angegeben werden. Die nach jedem Array angegebenen Sortierflags gelten nur für dieses Array – zuvor wurden die Standardwerte SORT_ASC und SORT_REGULAR verwendet.
Das Eingabearray wird als Tabellenspalte behandelt und nach Zeile sortiert – dies ähnelt der Funktionalität der ORDER BY-Klausel von SQL. Das erste Array ist das zu sortierende Hauptarray. Wenn beim Vergleich festgestellt wird, dass die Zeilen (Werte) im Array gleich sind, werden sie nach der Größe des entsprechenden Werts im nächsten Eingabearray usw. sortiert.
Die Parameterstruktur dieser Funktion ist etwas ungewöhnlich, aber sehr flexibel. Der erste Parameter muss ein Array sein. Jedes der folgenden Argumente kann ein Array oder ein unten aufgeführtes Sortierflag sein.
Wir haben jetzt also einen solchen Datensatz
// 这是一组从数据库查询出来的结果 $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); //我们需要先做出一个volume+edition的数组来 foreach($data as $val){ $arr[] = $val['volume'] + $val['edition']; } // 将$arr根据降序排列 // 把 $data 作为最后一个参数,以通用键排序 array_multisort($arr, SORT_DESC, $data);
Damit werden die Funktionen erreicht, die wir brauchen
Mehr darüber, wie man die PHP-Funktion array_multisort verwendet, um eine komplexe Datenbanksortierung durchzuführen Ergebnisse Für verwandte Artikel beachten Sie bitte die chinesische PHP-Website!