Funktion strnatcmp

Die Funktion strnatcmp führt einen Vergleich zweier Strings unter Berücksichtigung der natürlichen Ordnung der Zeichen durch. Im Gegensatz zum normalen Vergleich erkennt diese Funktion Zahlen innerhalb der Strings und vergleicht sie nach ihrem numerischen Wert. Die Funktion gibt 0 zurück, wenn die Strings identisch sind, eine Zahl -1, wenn der erste String kleiner als der zweite ist, und eine Zahl größer als 1, wenn der erste String größer als der zweite ist.

Syntax

phpstrnatcmp(string $str1, string $str2): int

Beispiel

String-Vergleich mit Zahlen auf normale Weise und mit strnatcmp:

php<?php
  $res1 = strcmp("file2.txt", "file10.txt");
  $res2 = strnatcmp("file2.txt", "file10.txt");
  
  echo "strcmp result: " . $res1 . "\n";
  echo "strnatcmp result: " . $res2;
?>

Ergebnis der Code-Ausführung:

phpstrcmp result: 1
strnatcmp result: -1

Beispiel

String-Vergleich mit verschiedenen Zahlen:

php<?php
  $res = strnatcmp("image5.jpg", "image15.jpg");
  echo $res;
?>

Ergebnis der Code-Ausführung:

php-1

Beispiel

Vergleich identischer Strings:

php<?php
  $res = strnatcmp("hello123", "hello123");
  echo $res;
?>

Ergebnis der Code-Ausführung:

php0

Siehe auch

  • die Funktion strcmp,
    die einen binär-sicheren String-Vergleich durchführt
  • die Funktion strcasecmp,
    die Strings ohne Berücksichtigung der Groß-/Kleinschreibung vergleicht
  • die Funktion natcasesort,
    die ein Array unter Verwendung der natürlichen Ordnung ohne Berücksichtigung der Groß-/Kleinschreibung sortiert