substr_count

関数の概要

PHPの substr_count 関数は、指定した文字列の中で特定の部分文字列が何回出現するかを数えるための関数です。文字列操作の中でも特に頻繁に使われる関数で、テキストの解析やデータ検証などに役立ちます。

パラメータの説明

  • haystack (必須):検索対象となる文字列。
  • needle (必須):探したい部分文字列。
  • offset (任意):検索を開始する位置を指定する整数。負の値も指定可能で、文字列の末尾からの位置を示します。デフォルトは0。
  • length (任意):検索範囲の長さを指定する整数。正の値で開始位置からの長さ、負の値で末尾から除外する文字数を意味します。指定しない場合は文字列の最後まで検索します。

戻り値

部分文字列が見つかった回数を整数で返します。もし部分文字列が存在しなければ0を返します。

使用例

基本的な使い方

<?php
$text = "apple, banana, apple, orange, apple";
$count = substr_count($text, "apple");
echo $count;  // 出力:3
?>

文字列に含まれる「apple」の出現回数を数えています。今回の例では3回出ているため、3が出力されます。

検索開始位置を指定する例

<?php
$text = "abc abc abc";
$count = substr_count($text, "abc", 4);
echo $count;  // 出力:2
?>

検索を文字列の4文字目から開始しています。1回目の「abc」はスキップされるので、結果は2回となります。

検索範囲を指定する例

<?php
$text = "one two three two one two";
$count = substr_count($text, "two", 0, 13);
echo $count; // 出力:1
?>

文字列の先頭から13文字までの範囲で「two」を検索し、出現回数を数えています。範囲内に1回だけ「two」が含まれているため、結果は1となります。

関連する関数

  • strpos:部分文字列の最初の位置を返す
  • strrpos:部分文字列の最後の位置を返す
  • str_replace:部分文字列を別の文字列に置換する
  • preg_match_all:正規表現による部分文字列の全出現数を取得する

まとめ

substr_count はPHPで部分文字列の出現回数を簡単に数えられる関数です。検索開始位置や検索範囲を指定できるため、柔軟に使い分けが可能です。文字列の分析や処理を行う際に非常に便利なので、ぜひ活用してください。