Funkcja strnatcmp

Funkcja strnatcmp wykonuje porównanie dwóch ciągów znaków z uwzględnieniem naturalnego porządku znaków. W przeciwieństwie do zwykłego porównania, ta funkcja rozpoznaje liczby wewnątrz ciągów i porównuje je według wartości numerycznej. Funkcja zwraca 0 jeśli ciągi są identyczne, liczbę -1 jeśli pierwszy ciąg jest mniejszy od drugiego, i liczbę większą od 1 jeśli pierwszy ciąg jest większy od drugiego.

Składnia

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

Przykład

Porównanie ciągów z liczbami w zwykły sposób i za pomocą strnatcmp:

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

Wynik wykonania kodu:

phpstrcmp result: 1
strnatcmp result: -1

Przykład

Porównanie ciągów z różnymi liczbami:

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

Wynik wykonania kodu:

php-1

Przykład

Porównanie identycznych ciągów:

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

Wynik wykonania kodu:

php0

Zobacz też

  • funkcję strcmp,
    która wykonuje porównanie ciągów bezpieczne dla danych binarnych
  • funkcję strcasecmp,
    która porównuje ciągi bez uwzględniania wielkości liter
  • funkcję natcasesort,
    która sortuje tablicę przy użyciu porządku naturalnego bez uwzględniania wielkości liter