Função strnatcmp

A função strnatcmp executa uma comparação de duas strings considerando a ordem natural dos caracteres. Diferente da comparação normal, esta função reconhece números dentro das strings e os compara por valor numérico. A função retorna 0 se as strings são idênticas, o número -1 se a primeira string for menor que a segunda, e um número maior que 1 se a primeira string for maior que a segunda.

Sintaxe

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

Exemplo

Comparando strings com números da maneira usual e com strnatcmp:

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

Resultado da execução do código:

phpstrcmp result: 1
strnatcmp result: -1

Exemplo

Comparando strings com números diferentes:

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

Resultado da execução do código:

php-1

Exemplo

Comparando strings idênticas:

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

Resultado da execução do código:

php0

Veja também

  • a função strcmp,
    que executa uma comparação de strings binária e segura
  • a função strcasecmp,
    que compara strings sem diferenciar maiúsculas de minúsculas
  • a função natcasesort,
    que ordena um array usando a ordem natural sem diferenciar maiúsculas de minúsculas