Heim  >  Artikel  >  Backend-Entwicklung  >  Wie sortiere ich ein Objektarray nach Objektfeld in PHP? (Codebeispiel)

Wie sortiere ich ein Objektarray nach Objektfeld in PHP? (Codebeispiel)

藏色散人
藏色散人Original
2019-03-19 11:08:348471Durchsuche

In diesem Artikel wird Ihnen die Implementierungsmethode zum Sortieren von Objektarrays nach Objektfeldern in PHP vorgestellt.

Wie sortiere ich ein Objektarray nach Objektfeld in PHP? (Codebeispiel)

Gegeben ein Array von Objekten, sortieren wir das Array nach Objekt und gegebenem Feld.

Methode:

usort()-Funktion ist eine in PHP integrierte Funktion, die zum bedingten Sortieren eines Arrays von Elementen mithilfe einer bestimmten Komparatorfunktion verwendet wird. Die Funktion usort() kann auch verwendet werden, um ein Objektarray nach Objektfeldern zu sortieren. Beim Aufruf der Funktion usort() wird der erste Parameter als Objektarray und der zweite Parameter als Komparatorfunktion verwendet. Auf dieser Basis müssen die beiden Arrayobjekte verglichen werden.

PHP-Codebeispiel:

<?php 
  
$gfg_array = array( 
    array( 
        &#39;score&#39; => &#39;100&#39;, 
        &#39;name&#39; => &#39;Sam&#39;, 
        &#39;subject&#39; => &#39;Data Structures&#39;
    ), 
    array( 
        &#39;score&#39; => &#39;50&#39;, 
        &#39;name&#39; => &#39;Tanya&#39;, 
        &#39;subject&#39; => &#39;Advanced Algorithms&#39;
    ), 
    array( 
        &#39;score&#39; => &#39;75&#39;, 
        &#39;name&#39; => &#39;Jack&#39;, 
        &#39;subject&#39; => &#39;Distributed Computing&#39;
    ) 
); 
  
class geekSchool {  
    var $score, $name, $subject; 
    
    public function geekSchool($data) { 
        $this->name = $data[&#39;name&#39;]; 
        $this->score = $data[&#39;score&#39;]; 
        $this->subject = $data[&#39;subject&#39;]; 
    } 
} 
  
function data2Object($data) { 
    $class_object = new geekSchool($data); 
    return $class_object; 
}  

function comparator($object1, $object2) { 
    return $object1->score > $object2->score; 
} 
  
$school_data = array_map(&#39;data2Object&#39;, $gfg_array); 
  
print("原始对象数组:\n"); 
  
print_r($school_data); 
  
usort($school_data, &#39;comparator&#39;); 
  
print("\n对象数组排序:\n"); 
  
print_r($school_data);

Ausgabe:

原始对象数组:
Array
(
    [0] => geekSchool Object
        (
            [score] => 100
            [name] => Sam
            [subject] => Data Structures
        )

    [1] => geekSchool Object
        (
            [score] => 50
            [name] => Tanya
            [subject] => Advanced Algorithms
        )

    [2] => geekSchool Object
        (
            [score] => 75
            [name] => Jack
            [subject] => Distributed Computing
        )

)

对象数组排序:
Array
(
    [0] => geekSchool Object
        (
            [score] => 50
            [name] => Tanya
            [subject] => Advanced Algorithms
        )

    [1] => geekSchool Object
        (
            [score] => 75
            [name] => Jack
            [subject] => Distributed Computing
        )

    [2] => geekSchool Object
        (
            [score] => 100
            [name] => Sam
            [subject] => Data Structures
        )

)

Verwandte Empfehlungen: „PHP-Tutorial

Dieser Artikel ist eine Einführung in die Methode zum Sortieren von Objektarrays nach Objektfeldern in PHP. Ich hoffe, dass er für Freunde in Not hilfreich ist.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein Objektarray nach Objektfeld in PHP? (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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