Die Funktion array_multisort in PHP sortiert mehrere Arrays oder mehrdimensionale Arrays. Das Parameterarray wird als Spalte einer Tabelle behandelt und nach Zeilen sortiert – dies ähnelt der Funktion 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. Hinweis: Die Anzahl der als Parameter verwendeten Array-Elemente sollte konsistent sein, andernfalls wird ein Fehler gemeldet.
Sehen wir uns zunächst ein Beispiel für das Sortieren mehrerer Arrays an.
$array1 = array('one'=>'10','two'=>'20','three'=>'20','four'=>10); $array2 = array('one'=>'10','two'=>'30','three'=>'20','four'=>'1'); $array3 = array('one'=>'C','two'=>'A','three'=>'B','four'=>'F'); array_multisort($array1,$array2,$array3); print_r($array1);//Array ( [four] => 10 [one] => 10 [three] => 20 [two] => 20 ) print_r($array2);//Array ( [four] => 1 [one] => 10 [three] => 20 [two] => 30 ) print_r($array3);//Array ( [four] => F [one] => C [three] => B [two] => A )
Sortieren Sie im obigen Beispiel zuerst das erste Parameterarray (standardmäßig sind alle Arrays in aufsteigender Reihenfolge sortiert), wie wir sehen können Im ersten Array existiert derselbe Wert (die Schlüsselnamen „eins“ und „vier“ haben den gleichen Schlüsselwert, die Schlüsselnamen „zwei“ und „drei“ haben den gleichen Schlüsselwert), also derselbe Wert im ersten Array wird sortiert Anschließend wird nach der Größe des entsprechenden Werts im nächsten Eingabearray sortiert (der Wert des zweiten Arrays „vier“ ist kleiner als der Wert „eins“, sodass der Wert vier vor eins steht). ), und so weiter.
Sehen Sie sich ein Beispiel für die Änderung der Sortierreihenfolge an.
$array1 = array('one'=>'10','two'=>'20','three'=>'20','four'=>10); $array2 = array('one'=>'10','two'=>'30','three'=>'20','four'=>'1'); $array3 = array('one'=>'C','two'=>'A','three'=>'B','four'=>'F'); array_multisort($array1,SORT_DESC,$array2,SORT_ASC,$array3); print_r($array1);//Array ( [three] => 20 [two] => 20 [four] => 10 [one] => 10 ) print_r($array2);//Array ( [three] => 20 [two] => 30 [four] => 1 [one] => 10 ) print_r($array3);//Array ( [three] => B [two] => A [four] => F [one] => C )
In diesem Beispiel wird das erste Array in absteigender Reihenfolge sortiert, und wenn derselbe Wert auftritt, wird das zweite Array entsprechend sortiert aufsteigender Wert.
Hinweis: Wenn es sich bei den sortierten Arrays ausschließlich um assoziative Arrays handelt, werden die ursprünglichen Schlüsselnamen beibehalten. Wenn ein Index-Array vorhanden ist, wird der Index in der richtigen Reihenfolge wiederhergestellt.
$array1 = array('one'=>'10',2=>'20',3=>'20',4=>10); $array2 = array('one'=>'10','2'=>'30','3'=>'20','four'=>'1'); $array3 = array('one'=>'C','2'=>'A','3'=>'B','four'=>'F'); array_multisort($array1,$array2,$array3); print_r($array1); //Array ( [0] => 10 [one] => 10 [1] => 20 [2] => 20 ) print_r($array2); //Array ( [four] => 1 [one] => 10 [0] => 20 [1] => 30 ) print_r($array3); //Array ( [four] => F [one] => C [0] => B [1] => A )
Mehrdimensionale Array-Sortierung.
Normalerweise haben wir einige mehrdimensionale Arrays, die sortiert werden müssen:
$guys = array( array('name'=>'jake', 'score'=>80, 'grade' =>'A'), array('name'=>'jina', 'score'=>70, 'grade'=>'A'), array('name'=>'john', 'score'=>70, 'grade' =>'A'), array('name'=>'ben', 'score'=>20, 'grade'=>'B') ); //例如我们想按成绩倒序排列,如果成绩相同就按名字的升序排列。 //这时我们就需要根据$guys的顺序多弄两个数组出来: $scores = array(80,70,70,20); $names = array('jake','jina','john','ben'); //然后 array_multisort($scores, SORT_DESC, $names, $guys); foreach($guys as $v){ print_r($v); echo "<br/>"; } /* Array ( [name] => jake [score] => 80 [grade] => A ) Array ( [name] => jina [score] => 70 [grade] => A ) Array ( [name] => john [score] => 70 [grade] => A ) Array ( [name] => ben [score] => 20 [grade] => B ) */
Verwandte Empfehlungen:
php-Paar-Funktion array_multisort() zum Sortieren mehrerer Arrays oder mehrdimensionaler Arrays
10 empfohlene Artikel über array_multisort()
PHP array_multisort() Hinweise zur Verwendung von Funktionen
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Funktion array_multisort des PHP-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!