So implementieren Sie die zweidimensionale Array-Sortierung in PHP

墨辰丷
Freigeben: 2023-03-30 12:52:01
Original
1212 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Implementierung der zweidimensionalen Array-Sortierung in PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

Für die zweidimensionale Array-Sortierung in PHP können Sie die in PHP integrierte Funktion uasort() verwenden

Beispiel 1:

Benutzerdefiniert verwenden Die Vergleichsfunktion sortiert die Werte im Array und behält die Indexzuordnung bei

Die Rückruffunktion lautet wie folgt: Beachten Sie, dass der Rückgabewert der Rückruffunktion negativ ist Zahl oder falsch bedeutet, dass der erste Parameter der Rückruffunktion an erster Stelle steht. Der zweite Parameter wird nach

$person = array(
  array('num'=>'001','id'=>6,'name'=>'zhangsan','age'=>21),
  array('num'=>'001','id'=>7,'name'=>'ahangsan','age'=>23),
  array('num'=>'003','id'=>1,'name'=>'bhangsan','age'=>23),
  array('num'=>'001','id'=>3,'name'=>'dhangsan','age'=>23),
);
//负数或者false表示第一个参数应该在前
function sort_by_name($x,$y){
  return strcasecmp($x['name'],$y['name']);
}
Nach dem Login kopieren

angeordnet und wie folgt verwendet:

uasort($person,'sort_by_name');
Nach dem Login kopieren

Das Folgende ist ein zweidimensionales Array Sortiermethode für Referenz- und Interviewzwecke:

//$array 要排序的数组
//$row  排序依据列
//$type 排序类型[asc or desc]
//return 排好序的数组
function array_sort($array,$row,$type){
  $array_temp = array();
  foreach($array as $v){
    $array_temp[$v[$row]] = $v;
  }
  if($type == 'asc'){
    ksort($array_temp);
  }elseif($type='desc'){
    krsort($array_temp);
  }else{
  }
  return $array_temp;
}
Nach dem Login kopieren

Beispiel 2:

Eindimensionale Array-Sortierung kann mit asort, ksort und anderen Methoden durchgeführt werden, was relativ einfach ist . Wie implementiert man die Sortierung zweidimensionaler Arrays? Durch die Verwendung von array_multisort und usort kann

beispielsweise das folgende Array erreicht werden:

Der Code lautet wie folgt:

$users = array(
  array('name' => 'tom', 'age' => 20)
  , array('name' => 'anny', 'age' => 18)
  , array('name' => 'jack', 'age' => 22)
);
Nach dem Login kopieren

Ich hoffe, nach zu sortieren Alter von klein bis groß. Der Autor hat zwei Methoden herausgefunden und sie mit allen geteilt.

1. Verwenden Sie array_multisort

Die Verwendung dieser Methode ist aufwändiger. Sie müssen das Alter extrahieren, es in einem eindimensionalen Array speichern und es dann anordnen in aufsteigender Reihenfolge nach Alter. Der spezifische Code lautet wie folgt:

Der Code lautet wie folgt:

$ages = array();
foreach ($users as $user) {
  $ages[] = $user['age'];
}
array_multisort($ages, SORT_ASC, $users);
Nach dem Login kopieren

Nach der Ausführung ist $users ein sortiertes Array, das zur Ansicht ausgedruckt werden kann. Wenn Sie zuerst in aufsteigender Reihenfolge nach Alter und dann in aufsteigender Reihenfolge nach Namen sortieren müssen, ist die Methode dieselbe wie oben, d 🎜>Der Code lautet wie folgt:

array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);
Nach dem Login kopieren

2. Verwenden Sie usort

Der größte Vorteil dieser Methode besteht darin, dass Sie einige komplexere Sortiermethoden anpassen können. Sortieren Sie beispielsweise nach Namenslänge in absteigender Reihenfolge:

Der Code lautet wie folgt:

usort($users, function($a, $b) {
      $al = strlen($a['name']);
      $bl = strlen($b['name']);
      if ($al == $bl)
        return 0;
      return ($al > $bl) ? -1 : 1;
    });
Nach dem Login kopieren

Hier werden anonyme Funktionen verwendet, die bei Bedarf separat extrahiert werden können. Unter diesen können $a und $b als Elemente im Array $users verstanden werden. Sie können den Namenswert direkt indizieren, die Länge berechnen und dann die Längen vergleichen.

========================================== == ========================

Hier übrigens ein paar Funktionen der PHP-Sortierung

sort Sortiert das Array

Gilt im Allgemeinen für eindimensionale Index-Arrays und behält den Index nicht bei

rsort Sortiert das Array in umgekehrter Reihenfolge

Die Verwendung ist konsistent mit sort

asort sortiert das Array

und behält die Indexbeziehung bei, um die Werte zu sortieren. Es ist im Allgemeinen für eindimensionale Arrays geeignet und behält die Indexbeziehung bei

arsort sortiert das Array in umgekehrter Reihenfolge und behält den Index bei. Die Beziehung

stimmt mit der Verwendung von asort überein

ksort sortiert das Array nach dem Schlüsselnamen

krsort sortiert das Array in umgekehrter Reihenfolge nach dem Schlüsselnamen

Zusammenfassung

: Das Obige ist hoffentlich der gesamte Inhalt dieses Artikels Es wird für das Lernen aller hilfreich sein.

Verwandte Empfehlungen:

So legen Sie die Dateigröße mit der readfile()-Funktion in PHP fest

PHP-Anpassung Detaillierte Erläuterung der Bildmitte-Zuschneidefunktion

PHP implementiert das Kopieren, Löschen, Anzeigen der Größe usw. von Ordnern basierend auf der Iteration

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die zweidimensionale Array-Sortierung 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!