Funktio strnatcmp

Funktio strnatcmp suorittaa kahden merkkijonon vertailun ottamaan huomioon merkkien luonnollisen järjestyksen. Toisin kuin tavallinen vertailu, tämä funktio tunnistaa merkkijonojen sisällä olevat numerot ja vertailee niitä numeerisena arvona. Funktio palauttaa 0 jos merkkijonot ovat identtiset, luvun -1 jos ensimmäinen merkkijono on pienempi kuin toinen, ja luvun suurempi kuin 1 jos ensimmäinen merkkijono on suurempi kuin toinen.

Syntaksi

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

Esimerkki

Merkkijonojen vertailu numeroilla tavalliseen tapaan ja strnatcmp-funktiolla:

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

Koodin suorituksen tulos:

phpstrcmp result: 1
strnatcmp result: -1

Esimerkki

Eri numeroita sisältävien merkkijonojen vertailu:

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

Koodin suorituksen tulos:

php-1

Esimerkki

Samankaltaisten merkkijonojen vertailu:

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

Koodin suorituksen tulos:

php0

Katso myös

  • funktion strcmp,
    joka suorittaa binaariturvallisen merkkijonojen vertailun
  • funktion strcasecmp,
    joka vertailee merkkijonoja ottamatta huomioon kirjainkokoa
  • funktion natcasesort,
    joka lajittaa taulukon käyttäen luonnollista järjestystä ottamatta huomioon kirjainkokoa