ホームページ  >  記事  >  バックエンド開発  >  PHP は「自然な」アルゴリズムを使用して文字列の類似点と相違点をどのように認識しますか

PHP は「自然な」アルゴリズムを使用して文字列の類似点と相違点をどのように認識しますか

醉折花枝作酒筹
醉折花枝作酒筹オリジナル
2021-08-05 14:35:461445ブラウズ

前回の記事では、別の文字列内の文字列の最後の位置を見つける方法を学習しました。必要な場合は、「php で文字列の最後の位置を知る方法 」をお読みください。今回は、「自然な」アルゴリズムを使用して文字列の類似点と相違点を知る方法を紹介しますので、必要に応じて参照してください。

前回の記事では文字列を比較する方法を紹介しましたが、今回は異なり、「自然な」アルゴリズムを使用して文字列を比較します。通常のアルゴリズムを使用して文字列を比較する方法を知りたい場合は、以前の記事「php 関数で文字列の類似点と相違点を知る方法 」を参照してください。

「自然な」並べ替えアルゴリズムと呼ばれるものを見てみましょう。

通常、英数字文字列を並べ替えるのと同じ方法で並べ替えアルゴリズムを実装し、元のキーと値の関連付けを維持します。これは「自然並べ替え」と呼ばれます。

さて、本題に入りましょう。

まず、小さな例を見てみましょう。

<?php
echo strnatcasecmp("2Hello WORLD!","10Hello WORLD!");
echo "<br>";
echo strnatcasecmp("2hello world!","2aello world!");
echo "<br>";
echo strnatcasecmp("2hello world!","9hello WORLD!");
echo "<br>";
echo strnatcasecmp("2hello world!","2HELLO WORLD!");
?>

この結果は

PHP は「自然な」アルゴリズムを使用して文字列の類似点と相違点をどのように認識しますか

この例を詳しく見てみましょう。前の数値を除いてまったく同じである場合、数値は -1 です。数値は同じですが、後続の文字が変更されている場合は 1 です。数値が同じで、文字も同じで、大文字と小文字が異なる場合は、次のようになります。 0になります。その理由は何ですか?

これらの質問を踏まえて、この関数を見てみましょう。

strnatcasecmp() 関数は、「自然な」アルゴリズムを使用して 2 つの文字列を比較します (大文字と小文字は区別されません)。

ここでは、この関数の構文を見てみましょう。

strnatcasecmp(要比较的第一个字符串,要比较的第二个字符串)

以前も「0」、「-1」、「1」について興味がありましたが、それらが何を意味するか知っていますか?関係ありません。これらは関数の戻り値であり、最初の文字列と 2 番目の文字列の関係を示すために使用されます。

関数は次を返します:

  • 0 - 2 つの文字列が等しい場合

  • >0 より小さい場合 - string1 が string2

より大きい場合、実際には、次を使用して文字列を比較する方法が 2 つあります。今回は大文字と小文字を区別しないアルゴリズムを紹介します。次の記事では大文字と小文字を区別するアルゴリズムを紹介します。

これですべてです。他に知りたいことがある場合は、ここをクリックしてください。 → →phpビデオチュートリアル

以上がPHP は「自然な」アルゴリズムを使用して文字列の類似点と相違点をどのように認識しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。