PHP Portal » PHP Handbuch » strnatcmp

Werbung

strnatcmp


(PHP 4, PHP 5)

strnatcmpString-Vergleich unter Verwendung einer "natürlichen Ordnung"

Beschreibung

int strnatcmp ( string $str1 , string $str2 )

Diese Funktion implemetiert einen Vergleichsalgorithmus, der alphanumerische Zeichenketten "menschlich" ordnet (auch "natürliche Ordnung" genannt). Beachten Sie, dass der Vergleich Groß- und Kleinschreibung berücksichtigt.

Parameter-Liste

str1

Die erste Zeichenkette.

str2

Die zweite Zeichenkette.

Rückgabewerte

Gibt einen Wert < 0 zurück, wenn str1 in der natürlichen Sortierung vor str2 steht, einen Wert > 0, wenn str1 in der natürlichen Sortierung hinter str2 steht, und 0, wenn sie gleich sind.

Beispiele

Der Unterschied zwischen dieser und der regulären String-Sortierung eines Computers (wie sie strcmp() verwendet) wird in dem folgenden Beispiel gezeigt:

PHP Code
1
2
3
4
5
6
7
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png"); echo "Normaler String-Vergleich\n"; usort($arr1, "strcmp"); print_r($arr1); echo "\nVergleich mittels natürlicher Ordnung\n"; usort($arr2, "strnatcmp"); print_r($arr2);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Normaler String-Vergleich
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)
Vergleich mittels natürlicher Ordnung
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)

Weitere Informationen finden Sie auf Martin Pools » Natural Order String Comparison-Seite.

Siehe auch

  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • strcasecmp() - Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)
  • substr() - Gibt einen Teil eines Strings zurück
  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • strcmp() - Vergleich zweier Strings (Binary safe)
  • strncmp() - String-Vergleich der ersten n Zeichen (Binary safe)
  • strncasecmp() - Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen
  • strnatcasecmp() - String-Vergleich "natürlicher Ordnung" ohne Unterscheidung der Schreibweise
  • strstr() - Findet das erste Vorkommen eines Strings
  • natsort() - Sortiert ein Array in "natürlicher Reihenfolge"
  • natcasesort() - Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert