シェアする

  • このエントリーをはてなブックマークに追加

[PHP]文字列に含まれる特定の文字を数える

リファレンス

文字列($haystack)に含まれる特定の副文字列(needle)を数える関数をメモします*[1]

関数名

substr_count
副文字列の出現回数を数える

説明

int substr_count ( string $haystack, string $needle [, int $offset [, int $length]] )

$haystack
検索対象の文字列

$needle
検索する副文字列

$offset
開始位置のオフセット

$length
指定したオフセット以降に副文字列で検索する最大長。 オフセットと長さの総和が haystack の長さよりも長い場合、警告が発生します。

使い方

$words = "このたけがきにたけたてかけたのはたけたてかけたかったからたけたてかけたのです";
// $wordsの中に"たけ"が何個あるか数えてみよう!
$count = substr_count($words, "たけ");
// $countがいくつになったか表示してみよう!
var_dump($count);  // 4が表示されたはず

$offset(int)を設定すると開始位置を指定した数だけ開始位置をずらすことができる。
$length(int)を設定すると開始位置から何文字を検索対象にするかを指定できる。

あとがき

こういうの書きなれていないので、「こういう風に書いたらもっとわかりやすいよ」ってなアドバイスがありましたら忌憚なくお聞かせいただけると嬉しいです。

  1. こういう関数ってヘルプを探してもなかなか見つけられないんですよね。まず「副文字列」とかいう単語が思い浮かばないし。というわけで今後は知らなかった便利な関数を使う機会に恵まれたらカテゴリ:リファレンスにそれぞれの言語(たぶんPHPばっかりだけど)のタグをつけて記事にしたいと思います。 []

シェアする

  • このエントリーをはてなブックマークに追加

フォローする