natsort
(PHP 4, PHP 5)
natsort — Sortiert ein Array in "natürlicher Reihenfolge"
Beschreibung
&$array
)Diese Funktion implementiert einen Sortieralgorithmus, welcher alphanumerische Zeichenketten reiht, wie es auch ein Mensch tun würde, wobei Sie die Schlüssel-Wert-Zuordnung beibehält. Das wird als "natürliche Reihenfolge" bezeichnet. würde. Ein Beispiel für den Unterschied zwischen diesem und dem normalen Sortieralgorithmus für Strings eines Computers (verwendet in sort()) ist weiter unten zu sehen.
Parameter-Liste
-
array -
Das Eingabe-Array.
Rückgabewerte
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.
Changelog
| Version | Beschreibung |
|---|---|
| 5.2.10 | Mit 0 aufgefüllte numerische Zeichenketten (z.B. '00005') ignorieren nun die 0-Füllung im Wesentlichen. |
Beispiele
Beispiel #1 natsort() Beispiele, die die grundlegende Verwendung demonstrieren
<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");
sort ($array1);
echo "Standardsortierung\n";
print_r ($array1);
natsort ($array2);
echo "\nSortieren mit natürlicher Reihenfolge\n";
print_r ($array2);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Standardsortierung
Array
(
[0] => img1.png
[1] => img10.png
[2] => img12.png
[3] => img2.png
)
Sortieren mit natürlicher Reihenfolge
Array
(
[3] => img1.png
[2] => img2.png
[1] => img10.png
[0] => img12.png
)
Detailliertere Informationen finden Sie auf Martin Pools » Natural Order String Comparison Seite.
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 Unterscheidung der Schreibweise