Detaillierte Erläuterung der Funktion array_multisort des PHP-Arrays

小云云
Freigeben: 2023-03-22 12:58:02
Original
3218 Leute haben es durchsucht

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.

  1. $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 )
    Nach dem Login kopieren


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.

  1. $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 )
    Nach dem Login kopieren

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.

  1. $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 )
    Nach dem Login kopieren

Mehrdimensionale Array-Sortierung.

Normalerweise haben wir einige mehrdimensionale Arrays, die sortiert werden müssen:

  1. $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 ) 
    */
    Nach dem Login kopieren

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!

Verwandte Etiketten:
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