(PHP 4, PHP 5, PHP 7, PHP 8)
natsort — Sortiert ein Array in "natürlicher Reihenfolge"
Diese 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.
arrayDas Eingabe-Array.
Gibt immer true zurück.
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 sind auf Martin Pools Seite » Natural Order String Comparison zu finden.
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
)