Funktionen strnatcmp

Funktionen strnatcmp utför en jämförelse av två strängar med hänsyn till den naturliga ordningen av tecken. Till skillnad från vanlig jämförelse känner denna funktion igen tal inuti strängar och jämför dem efter deras numeriska värde. Funktionen returnerar 0 om strängarna är identiska, talet -1 om den första strängen är mindre än den andra, och ett tal större än 1 om den första strängen är större än den andra.

Syntax

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

Exempel

Jämförelse av strängar med tal på vanligt sätt och med hjälp av 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 av kodens exekvering:

phpstrcmp result: 1
strnatcmp result: -1

Exempel

Jämförelse av strängar med olika tal:

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

Resultat av kodens exekvering:

php-1

Exempel

Jämförelse av identiska strängar:

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

Resultat av kodens exekvering:

php0

Se även

  • funktionen strcmp,
    som utför en binärt-säker jämförelse av strängar
  • funktionen strcasecmp,
    som jämför strängar utan hänsyn till skiftläge
  • funktionen natcasesort,
    som sorterar en array med hjälp av naturlig ordning utan hänsyn till skiftläge