ConFoo 2025

strnatcasecmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strnatcasecmp"自然順"アルゴリズムにより大文字小文字を区別しない文字列比較を行う

説明

strnatcasecmp(string $string1, string $string2): int

この関数は、人間が行うような手法でアルファベットまたは数字の 文字列の順序を比較するアルゴリズムを実装します。この関数の動作は、 strnatcmp() に似ていますが、 比較が大文字小文字を区別しない違いがあります。 詳細な情報については、Martin Pool の » 自然順文字列比較 のページを参照ください。

パラメータ

string1

最初の文字列。

string2

次の文字列。

戻り値

他の文字列比較関数と同様に、この関数は、 string1string2 より小さい場合に -1string1string2より大きい場合に 1、等しい場合に 0 を返します。

変更履歴

バージョン 説明
8.2.0 これより前のバージョンで負の数と正の数を返していた場合に、 この関数は -11 を返すようになりました。

例1 strnatcasecmp() の例

<?php

var_dump
(strnatcasecmp('Apple', 'Banana'));
var_dump(strnatcasecmp('Banana', 'Apple'));
var_dump(strnatcasecmp('apple', 'Apple'));
?>

上の例の出力は以下となります。

int(-1)
int(1)
int(0)

参考

  • preg_match() - 正規表現によるマッチングを行う
  • strcmp() - バイナリセーフな文字列比較
  • strcasecmp() - 大文字小文字を区別しないバイナリセーフな文字列比較を行う
  • substr() - 文字列の一部分を返す
  • stristr() - 大文字小文字を区別しない strstr
  • strncasecmp() - バイナリセーフで大文字小文字を区別しない文字列比較を、最初の n 文字について行う
  • strncmp() - 最初の n 文字についてバイナリセーフな文字列比較を行う
  • strstr() - 文字列が最初に現れる位置を見つける
  • setlocale() - ロケール情報を設定する

add a note

User Contributed Notes 2 notes

up
9
chatfielddaniel at googlemail dot com
13 years ago
The function treats '_' as after letters and numbers when it would be placed before logically.
up
4
Marco
8 years ago
Use strnatcmp to avoid the _ problem as mentioned below;

<< The function treats '_' as after letters and numbers when it would be placed before logically. >>
To Top