strnatcmp

(PHP 4, PHP 5, PHP 7, PHP 8)

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

Beschreibung

strnatcmp(string $string1, string $string2): int

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

Parameter-Liste

string1

Die erste Zeichenkette.

string2

Die zweite Zeichenkette.

Rückgabewerte

Gibt einen Wert kleiner als 0 zurück, wenn string1 in der Reihenfolge der Sortierung vor string2 kommt; einen Wert größer als 0, wenn string1 nach string2 kommt, und 0, wenn sie gleich sind. Aus dem Wert kann außer seinem Vorzeichen keine bestimmte Bedeutung abgeleitet werden.

Changelog

Version Beschreibung
8.2.0 Diese Funktion gibt nicht mehr garantiert strlen($string1) - strlen($string2) zurück, wenn die Längen der Zeichenketten nicht gleich sind, sondern kann nun stattdessen -1 oder 1 zurückgeben.

Beispiele

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

<?php
$arr1
= $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo
"Normaler Zeichenketten-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 Zeichenketten-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 sind auf Martin Pools Seite » Natural Order String Comparison zu finden.

Siehe auch

  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • strcasecmp() - Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (binärsicher)
  • substr() - Liefert einen Teil eines Strings
  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • strcmp() - Vergleich zweier Strings (binärsicher)
  • strncmp() - String-Vergleich der ersten n Zeichen (binärsicher)
  • strncasecmp() - Binärsicherer Vergleich von Zeichenketten der ersten n Zeichen ohne Berücksichtigung der Groß- und Kleinschreibung
  • strnatcasecmp() - String-Vergleich "natürlicher Ordnung" ohne Berücksichtigung der Groß- und Kleinschreibung
  • 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