Sortieren mehrdimensionaler Arrays mit PHP

WBOY
Freigeben: 2023-06-06 08:34:02
Original
1680 Leute haben es durchsucht

Bei der PHP-Programmierung müssen wir häufig mehrdimensionale Arrays sortieren, um unterschiedliche Anforderungen zu erfüllen, z. B. Sortieren nach Preis, Sortieren in alphabetischer Reihenfolge usw. Das Sortieren mehrdimensionaler Arrays ist jedoch komplexer als das Sortieren eindimensionaler Arrays. In diesem Artikel wird erläutert, wie Sie mit PHP mehrdimensionale Arrays sortieren.

  1. PHPs Sortierfunktionen

Zunächst müssen wir die Sortierfunktionen in PHP verstehen: sort(), rsort(), asort(), arsort(), ksort(), krsort(), uksort() , usort (). Diese Funktionen eignen sich zum Sortieren eindimensionaler Arrays. Wenn Sie ein mehrdimensionales Array sortieren möchten, müssen wir zum Sortieren des Arrays eine Rückruffunktion verwenden.

  1. Definition der Callback-Funktion

Eine Callback-Funktion bezieht sich auf eine Funktion, die als Parameter in anderen Funktionen übergeben wird. In PHP werden Rückruffunktionen normalerweise zum Sortieren, Filtern, Durchlaufen usw. von Arrays verwendet. Als Rückruffunktion können wir eine anonyme Funktion oder eine Funktion mit einem benutzerdefinierten Namen verwenden.

Das Folgende ist ein Beispiel für die Verwendung einer anonymen Funktion als Rückruffunktion:

$array = array(
    array('price' => 45.50),
    array('price' => 15.00),
    array('price' => 20.15),
    array('price' => 25.00),
    array('price' => 90.10),
    array('price' => 9.99),
);

usort($array, function($a, $b) {
    if ($a['price'] == $b['price']) return 0;
    return ($a['price'] < $b['price']) ? -1 : 1;
});

print_r($array);
Nach dem Login kopieren

Die Ausgabe lautet wie folgt:

Array (
    [0] => Array ( [price] => 9.99 )
    [1] => Array ( [price] => 15 )
    [2] => Array ( [price] => 20.15 )
    [3] => Array ( [price] => 25 )
    [4] => Array ( [price] => 45.5 )
    [5] => Array ( [price] => 90.1 )
)
Nach dem Login kopieren
  1. Verwenden einer Rückruffunktion zum Sortieren eines mehrdimensionalen Arrays

Wenn Sie a sortieren möchten Bei einem mehrdimensionalen Array müssen wir die Array-Sortierregeln der Callback-Funktionsdefinition verwenden. Wir können in der Rückruffunktion mehrere Sortierbedingungen definieren und die Werte der Array-Elemente einzeln nach Priorität vergleichen, um den Zweck der Sortierung zu erreichen.

Das Folgende ist ein Beispiel für die Verwendung von Rückruffunktionen zum Sortieren mehrdimensionaler Arrays:

$array = array(
    array('name' => 'John', 'age' => 25, 'score' => 80),
    array('name' => 'Mary', 'age' => 28, 'score' => 90),
    array('name' => 'Bob', 'age' => 20, 'score' => 95),
    array('name' => 'Jack', 'age' => 30, 'score' => 85),
    array('name' => 'Lisa', 'age' => 22, 'score' => 85),
);

// 按照年龄降序、分数升序、名字升序排序
usort($array, function($a, $b) {
    if ($a['age'] == $b['age']) {
        if ($a['score'] == $b['score']) {
            return strcmp($a['name'], $b['name']);
        } else {
            return ($a['score'] > $b['score']) ? 1 : -1;
        }
    } else {
        return ($a['age'] < $b['age']) ? 1 : -1;
    }
});

print_r($array);
Nach dem Login kopieren

Die Ausgabeergebnisse lauten wie folgt:

Array (
    [0] => Array ( [name] => Mary [age] => 28 [score] => 90 )
    [1] => Array ( [name] => Jack [age] => 30 [score] => 85 )
    [2] => Array ( [name] => Lisa [age] => 22 [score] => 85 )
    [3] => Array ( [name] => John [age] => 25 [score] => 80 )
    [4] => Array ( [name] => Bob [age] => 20 [score] => 95 )
)
Nach dem Login kopieren
  1. Zusammenfassung

In diesem Artikel wird erläutert, wie Sie mit PHP die Sortierung mehrdimensionaler Arrays implementieren Arrays Zuerst verstehen wir die Sortierfunktion und sortieren dann das mehrdimensionale Array über die Rückruffunktion. In der tatsächlichen Entwicklung ist das Sortieren eine sehr häufige Funktion, und das Sortieren mehrdimensionaler Arrays kann es uns ermöglichen, verschiedene Anforderungen besser zu erfüllen.

Das obige ist der detaillierte Inhalt vonSortieren mehrdimensionaler Arrays mit PHP. 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