関数 strnatcmp

関数 strnatcmp は、自然な文字順序を考慮して2つの文字列を比較します。 通常の比較とは異なり、この関数は文字列内の数字を認識し、数値として比較します。 この関数は、文字列が同一の場合 0 を、最初の文字列が2番目の文字列より小さい場合 -1 を、 最初の文字列が2番目の文字列より大きい場合 1 より大きな数値を返します。

構文

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

例

通常の方法とstrnatcmpを使用した、数字を含む文字列の比較:

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

コード実行結果:

phpstrcmp result: 1
strnatcmp result: -1

例

異なる数字を含む文字列の比較:

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

コード実行結果:

php-1

例

同一文字列の比較:

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

コード実行結果:

php0

関連項目

  • 関数 strcmp,
    バイナリセーフな文字列比較を行います
  • 関数 strcasecmp,
    大文字小文字を区別せずに文字列を比較します
  • 関数 natcasesort,
    大文字小文字を区別しない自然順で配列をソートします