Diese Seite funktioniert am besten mit aktiviertem JavaScript!

Beschreibung: Listen sortieren

Online Tool: Liste sortieren

In diesem Artikel wird die Funktionsweise des Konverters "Listen sortieren" erläutert. Mit Hilfe dieses Online-Tools können Listen ganz einfach nach verschiedenen Kriterien sortiert werden.


Anzeige
Andreas Goldemann: Zurück zum Ursprung

Verschiedene Sortierverfahren

Eine Liste kann man bekanntlich nach unterschiedlichsten Verfahren sortieren. Dieses Online-Tool unterstützt die alphabetische Sortierung nach DIN 5007-1, die Telefonbuch-Sortierung nach DIN 5007-2, die natürliche Sortierung, sowie die umgekehrte Sortierung. Hierbei ist es möglich, die sortierte Liste aufsteigend oder absteigend anzuordnen sowie die Klein-/Großschreibung zu ignorieren.

Alphabetische Sortierung (DIN 5007-1)

Wie man eine Liste alphabetisch sortiert, dürfte klar sein. Lediglich bei ein paar Zeichen, wie z.B. den Umlauten Ä, Ö und Ü ist es nicht sofort ersichtlich, wie diese einzuordnen sind. Nach DIN 5007-1 gilt hierbei folgendes:

  • ä/Ä und a/A sind gleich
  • ö/Ö und o/O sind gleich
  • ü/Ü und u/U sind gleich
  • ß und ss sind gleich

Programmiertechnisch kann dies in PHP wie folgt umgesetzt werden:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$sortierte_liste = array();
$search = array("#Ä#u", "#ä#u", "#Ö#u", "#ö#u", "#Ü#u", "#ü#u", "#ß#u", "#-#u");
$replace = array("A", "a", "O", "o", "U", "u", "ss", " ");

$arr_replaced = preg_replace($search, $replace, $alle_eintraege); // Zeichen ersetzen

// Wenn die Klein-/Großschreibung beachtet werden soll
if ($case_sensitive)
{
   asort($arr_replaced, SORT_STRING); // Alphabetisch sortieren
}
// Wenn die Klein-/Großschreibung nicht beachtet werden soll
else
{
   asort($arr_replaced, SORT_STRING | SORT_FLAG_CASE); // Alphabetisch sortieren
}

foreach ($arr_replaced as $key => $value)
{
   $sortierte_liste[] = $alle_eintraege[$key];
}

Im Prinzip wird hier einfach ein zusätzliches Array erstellt, bei dem die Umlaute usw. ersetzt werden. Dieses wird dann sortiert und anschließend wird das Original-Array in die gleiche Reihenfolge gebracht.

Telefonbuch-Sortierung (DIN 5007-2)

Bei der sogenannten Telefonbuch-Sortierung nach DIN 5007-2 werden die Umlaute auf eine andere Art und Weise ersetzt:

  • ä/Ä und ae/Ae sind gleich
  • ö/Ö und oe/Oe sind gleich
  • ü/Ü und ue/Ue sind gleich
  • ß und ss sind gleich

Des Weiteren wird hier nicht die normale alphabetische Sortierung, sondern die natürliche Sortierung angewendet. Bei der natürlichen Sortierung werden Einträge mit Zahlenwerten so einsortiert, wie es ein Mensch auch tun würde. Zum besseren Verständnis hier ein kurzes Beispiel:

Alphabetische Sortierung
  • Bild1.png
  • Bild13.png
  • Bild2.png
  • Bild20.png
Natürliche Sortierung
  • Bild1.png
  • Bild2.png
  • Bild13.png
  • Bild20.png

Der Code für die Telefonbuch-Sortierung sieht dann wie folgt aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$sortierte_liste = array();
$search = array("#Ä#u", "#ä#u", "#Ö#u", "#ö#u", "#Ü#u", "#ü#u", "#ß#u", "#-#u");
$replace = array("Ae", "ae", "Oe", "oe", "Ue", "ue", "ss", " ");

$arr_replaced = preg_replace($search, $replace, $alle_eintraege); // Zeichen ersetzen

// Wenn die Klein-/Großschreibung beachtet werden soll
if ($case_sensitive)
{
   natsort($arr_replaced); // Natürlich sortieren
}
// Wenn die Klein-/Großschreibung nicht beachtet werden soll
else
{
   natcasesort($arr_replaced); // Natürlich sortieren
}

foreach ($arr_replaced as $key => $value)
{
   $sortierte_liste[] = $alle_eintraege[$key];
}

Natürliche Sortierung

Die natürliche Sortierung wurde ja bereits im vorherigen Abschnitt erläutert. Der Unterschied bei der Auswahl dieses Sortierverfahrens im Gegensatz zur Telefonbuch-Sortierung besteht lediglich darin, dass die Umlaute usw. wie bei der alphabetischen Sortierung ersetzt werden:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$sortierte_liste = array();
$search = array("#Ä#u", "#ä#u", "#Ö#u", "#ö#u", "#Ü#u", "#ü#u", "#ß#u", "#-#u");
$replace = array("A", "a", "O", "o", "U", "u", "ss", " ");

$arr_replaced = preg_replace($search, $replace, $alle_eintraege); // Zeichen ersetzen

// Wenn die Klein-/Großschreibung beachtet werden soll
if ($case_sensitive)
{
   natsort($arr_replaced); // Natürlich sortieren
}
// Wenn die Klein-/Großschreibung nicht beachtet werden soll
else
{
   natcasesort($arr_replaced); // Natürlich sortieren
}

foreach ($arr_replaced as $key => $value)
{
   $sortierte_liste[] = $alle_eintraege[$key];
}

Umgekehrte Reihenfolge

Für das umgekehrte Sortierverfahren muss lediglich das Array mit den Einträgen umgekehrt werden:

1
$sortierte_liste = array_reverse($alle_eintraege);

Die gleiche Funktion wird auch hierterher bei der Auswahl einer absteigenden Sortierung angewendet.

ZUM LISTEN SORTIERER
Teile diese Seite
Erstellt am 04.03.2018 | Zuletzt geändert am 08.04.2021