【PHP8.x】substr_count関数の使い方

作成日: 更新日:

substr_count関数は、指定された文字列(haystack)の中に、特定の文字列(needle)が何回出現するかをカウントする関数です。この関数は、大文字と小文字を区別してカウントを行います。例えば、長い文章中に特定のキーワードがいくつ含まれているかを調べたい場合や、ログデータから特定のエラーメッセージの発生頻度を知りたい場合などに役立ちます。

この関数は、以下の引数を取ります。 最初の引数 $haystack には、検索の対象となる元の文字列を指定します。 次の引数 $needle には、$haystack の中で探したい部分文字列を指定します。 オプションの3番目の引数 $offset には、文字列のどの位置から検索を開始するかを整数で指定します。デフォルト値は 0 で、文字列の先頭から検索を開始します。 オプションの4番目の引数 $length には、$offset で指定した位置から、どのくらいの長さの範囲内で検索を行うかを整数で指定します。この引数を省略すると、$offset から文字列の最後までが検索対象となります。

戻り値としては、$haystack 内で $needle が見つかった回数を整数で返します。$needle が全く見つからなかった場合は 0 を返します。検索はバイト単位で行われるため、日本語のようなマルチバイト文字を扱う際には、文字数ではなくバイト数で処理されることに注意が必要です。この関数を利用することで、文字列内での部分文字列の出現頻度を手軽に把握することができます。

基本的な使い方

構文(syntax)

<?php
$text = "apple banana apple orange apple";
$sub = "apple";
$count = substr_count($text, $sub);
echo $count; // 3 が出力されます。
?>

引数(parameters)

string $haystack, string $needle, int $offset = 0, ?int $length = null

  • string $haystack: 検索対象となる文字列
  • string $needle: 検索する部分文字列
  • int $offset = 0: 検索を開始する位置(デフォルトは文字列の先頭)
  • ?int $length = null: 検索する文字列の長さ(デフォルトは残りの全文字列)

戻り値(return)

int

指定された文字列の中に、検索対象の文字列がいくつ含まれているかを整数で返します。

【PHP8.x】substr_count関数の使い方 | いっしー@Webエンジニア