Heim > Backend-Entwicklung > PHP-Tutorial > Wie sortiere ich ein mehrdimensionales Array nach einer bestimmten Spalte in PHP?

Wie sortiere ich ein mehrdimensionales Array nach einer bestimmten Spalte in PHP?

Mary-Kate Olsen
Freigeben: 2024-12-29 22:39:33
Original
403 Leute haben es durchsucht

How to Sort a Multidimensional Array by a Specified Column in PHP?

Sortieren eines mehrdimensionalen Arrays nach einer bestimmten Spalte in PHP

Um ein mehrdimensionales Array in PHP nach einer bestimmten Spalte zu sortieren, verwenden Sie die integrierte in PHP-Funktionen usort oder uasort. Der Schlüssel zum Sortieren besteht darin, eine benutzerdefinierte Vergleichsfunktion bereitzustellen, die die Reihenfolge der Array-Elemente bestimmt.

Benutzerdefinierte Vergleichsfunktion zum Sortieren

Die benutzerdefinierte Vergleichsfunktion benötigt zwei Elemente des Arrays als Eingabe und gibt eine Ganzzahl zurück:

  • Eine positive Ganzzahl, wenn das erste Element als „größer“ als das angesehen wird Sekunde.
  • Eine negative ganze Zahl, wenn das erste Element als „kleiner“ als das zweite angesehen wird.
  • Null, wenn die Elemente als gleich angesehen werden.

Sortieren nach einer einzelnen Spalte

Angenommen, Sie haben ein mehrdimensionales Array namens $data wobei jedes Element einen Datensatz mit mehreren Spalten darstellt. Um das Array nach der Spalte 'name' zu sortieren, verwenden Sie den folgenden Code:

usort($data, function($a, $b) {
  return strcmp($a['name'], $b['name']);
});
Nach dem Login kopieren

Diese benutzerdefinierte Vergleichsfunktion verwendet die Funktion strcmp, um die Werte von zu vergleichen die Spalte 'name' für jedes Element. Im sortierten Array werden die Elemente alphabetisch nach der Spalte 'name' sortiert.

Sortieren nach mehreren Spalten

Zum Sortieren nach mehreren Spalten Übergeben Sie zusätzliche Parameter an die benutzerdefinierte Vergleichsfunktion. Um beispielsweise nach 'Nummer' und dann 'Name' zu sortieren:

usort($data, function($a, $b) {
  if ($a['number'] == $b['number']) {
    return strcmp($a['name'], $b['name']);
  }
  return $a['number'] - $b['number'];
});
Nach dem Login kopieren

Erweiterte Funktionen

Sie können auch die folgenden erweiterten Funktionen festlegen:

  • Umkehren Sortieren: Setzen Sie den zweiten Parameter der Vergleichsfunktion auf SORT_DESC, um die Sortierreihenfolge umzukehren.
  • Benutzerdefinierte Projektionen: Wenn die Spaltenwerte nicht direkt vergleichbar sind Geben Sie eine Projektionsfunktion als dritten Parameter an, um sie zu konvertieren.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein mehrdimensionales Array nach einer bestimmten Spalte in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage