Funktionen strnatcmp

Funktionen strnatcmp udfører en sammenligning af to strenge under hensyntagen til den naturlige rækkefølge af tegn. I modsætning til almindelig sammenligning genkender denne funktion tal inde i strengene og sammenligner dem efter deres numeriske værdi. Funktionen returnerer 0 hvis strengene er identiske, tallet -1 hvis den første streng er mindre end den anden, og et tal større end 1 hvis den første streng er større end den anden.

Syntaks

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

Eksempel

Sammenligning af strenge med tal på normal vis og med strnatcmp:

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

Resultat af kodekørsel:

phpstrcmp result: 1
strnatcmp result: -1

Eksempel

Sammenligning af strenge med forskellige tal:

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

Resultat af kodekørsel:

php-1

Eksempel

Sammenligning af identiske strenge:

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

Resultat af kodekørsel:

php0

Se også

  • funktionen strcmp,
    som udfører en binærsikker sammenligning af strenge
  • funktionen strcasecmp,
    som sammenligner strenge uden at tage hensyn til store og små bogstaver
  • funktionen natcasesort,
    som sorterer et array ved hjælp af naturlig rækkefølge uden at tage hensyn til store og små bogstaver