natsort
(PHP 4, PHP 5, PHP 7, PHP 8)
natsort — Sortiert ein Array in "natürlicher Reihenfolge"
Beschreibung
&$array
): boolDiese Funktion implementiert einen Sortieralgorithmus, welcher alphanumerische Zeichenketten so ordnet, wie es auch ein Mensch unter Beibehaltung der Schlüssel-Wert-Zuordnung tun würde. Dies wird als "natürliche Reihenfolge" bezeichnet. Ein Beispiel für den Unterschied zwischen diesem und dem normalen Sortieralgorithmus eines Computers für Zeichenketten (verwendet in sort()) ist weiter unten zu sehen.
Hinweis:
Wenn zwei Mitglieder als identisch verglichen werden, behalten sie ihre ursprüngliche Reihenfolge bei. Vor PHP 8.0.0 war die relative Sortierung im sortierten Array nicht definiert.
Hinweis:
Setzt den internen Zeiger des Arrays auf das erste Element zurück.
Parameter-Liste
-
array
-
Das Eingabe-Array.
Rückgabewerte
Gibt immer true
zurück.
Beispiele
Beispiel #1 Beispiele für die grundlegende Verwendung von natsort()
<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");
asort($array1);
echo "Standardsortierung\n";
print_r($array1);
natsort($array2);
echo "\nSortieren in natürlicher Reihenfolge\n";
print_r($array2);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Standardsortierung Array ( [3] => img1.png [1] => img10.png [0] => img12.png [2] => img2.png ) Sortieren in natürlicher Reihenfolge Array ( [3] => img1.png [2] => img2.png [1] => img10.png [0] => img12.png )
Detailliertere Informationen finden Sie auf Martin Pools Seite » Natural Order String Comparison.
Beispiel #2 natsort()-Beispiele, die potentielle Tücken demonstrieren
<?php
echo "Negative Zahlen\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);
echo "0-Füllung\n";
$zeros = array('09', '8', '10', '009', '011', '0');
print_r($zeros);
natsort($zeros);
print_r($zeros);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Negative Zahlen Array ( [0] => -5 [1] => 3 [2] => -2 [3] => 0 [4] => -1000 [5] => 9 [6] => 1 ) Array ( [2] => -2 [0] => -5 [4] => -1000 [3] => 0 [6] => 1 [1] => 3 [5] => 9 ) 0-Füllung Array ( [0] => 09 [1] => 8 [2] => 10 [3] => 009 [4] => 011 [5] => 0 ) Array ( [5] => 0 [1] => 8 [3] => 009 [0] => 09 [2] => 10 [4] => 011 )
Siehe auch
- natcasesort() - Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert
- Den Vergleich von Arraysortierungsfunktionen
- strnatcmp() - String-Vergleich unter Verwendung einer "natürlichen Ordnung"
- strnatcasecmp() - String-Vergleich "natürlicher Ordnung" ohne Berücksichtigung der Groß- und Kleinschreibung