So verwenden Sie die PHP-Funktion array_multisort, um eine komplexe Sortierung von Datenbankergebnissen durchzuführen

高洛峰
Freigeben: 2023-03-04 16:54:01
Original
1234 Leute haben es durchsucht

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);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage