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.
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.
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);
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 ) )
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);
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 ) )
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!