現在の位置: ホーム> 最新記事一覧> substr_count関数を使用して、文字列内の特定の文字の発生数をカウントする方法の詳細な説明

substr_count関数を使用して、文字列内の特定の文字の発生数をカウントする方法の詳細な説明

gitbox 2025-06-15

1。substr_count ()関数の基本的な構文

substr_count()関数の基本的な構文は次のとおりです。

 substr_count(string $haystack, string $needle, int $offset = 0, int $length = NULL): int
  • $ haystack :検索するメイン文字列。

  • $針:発見されるサブストリング(または単一の文字)。

  • $ offset :オプションのパラメーター、検索の開始場所を指定します(デフォルトは文字列の先頭から始まります)。

  • $ length :オプションのパラメーター、ルックアップの最大長を指定します(文字列全体がデフォルトで見つかります)。

この関数は、 $ haystack$針が表示される回数を示す整数を返します。 $針が$ haystackに存在しない場合は、0を返します。


2。基本的な例

文字列があり、特定の文字の発生数を数えたいとします。簡単な例を次に示します。

 <?php
$string = "hello world, hello PHP!";
$char = "o";

// 使用 substr_count 関数統計文字 "o" 発生数
$count = substr_count($string, $char);

echo "キャラクター '$char' 発生数是: $count"; // 出力:キャラクター 'o' 発生数是: 3
?>

上記のコードでは、文字列「O」が文字列に表示される回数「Hello World、Hello PHP!」をカウントしました。 、および結果出力は3です。


3。統計サブストリングの発生数

単一の文字の発生数をカウントすることに加えて、 substr_count()を使用して、ターゲット文字列のサブストリングの発生数をカウントすることもできます。例えば:

 <?php
$string = "abcabcabcabc";
$substring = "abc";

// 使用 substr_count 函数统计子キャラクター串 "abc" 発生数
$count = substr_count($string, $substring);

echo "子キャラクター串 '$substring' 発生数是: $count"; // 出力:子キャラクター串 'abc' 発生数是: 4
?>

この例では、弦「ABC」が文字列「ABCABCABCABC」に表示されるサブストリング「ABC」の回数をカウントし、出力は4です。


4.オフセット長さのパラメーターを使用します

Substr_Count()関数は、オフセット長さのパラメーターもサポートしているため、検索範囲を制限できます。例えば:

 <?php
$string = "hello world, hello PHP!";
$char = "o";

// インデックス位置から 5 検索を開始します,ほとんどの検索で 10 个キャラクター
$count = substr_count($string, $char, 5, 10);

echo "キャラクター '$char' インデックスから 5 始める,ほとんどの検索で 10 个キャラクター,発生数是: $count"; // 出力:キャラクター 'o' インデックスから 5 始める,ほとんどの検索で 10 个キャラクター,発生数是: 1
?>

この例では、文字列の5番目の文字から始めて、検索の最大長は10文字であるため、 「世界のPHP!」のキャラクター「O」の発生数のみを数えます。部分、結果は1です。


5。注意すべきこと

  • substr_count()関数は症例に敏感であるため、 「o」「o」は異なる文字と見なされます。ケースに依存しないルックアップが必要な場合は、最初にstrtolower()strtoupper()を使用するなど、文字列を均一なケースに変換できます。

    例えば:

     <?php
    $string = "Hello World, hello PHP!";
    $char = "o";
    
    // 将キャラクター串转换为小写后再查找
    $count = substr_count(strtolower($string), strtolower($char));
    
    echo "キャラクター '$char' 在不区分大小写的情况下発生数是: $count"; // 出力:キャラクター 'o' 在不区分大小写的情况下発生数是: 3
    ?>
    
  • $針が空の文字列である場合、 substr_count()が0を返します。これは、空の文字列をサブストリングとしてカウントできないためです。