関数・クラス解説

count_chars

version:PHP 4, PHP 5, PHP 7 (公式)

文字列内の各文字についてバイト値に関する情報を返す

フォーマット

mixed : count_chars ( string $string [, int $mode = 0 ] )

パラメータ

string $string (必須)
調べたい文字列

int $mode = 0
情報の種類を数値で選択(下記返り値項参照)

返り値 mixed
mode の値により、count_chars() は以下の値を返却します。
0 - 0~255の各バイト値をキーとして、各バイトの出現回数を値とする配列を返す
1 - 0と同じですが、各バイト値の出現回数がゼロのものは除外した配列を返します(値が0以外の配列のみ)。
2 - 0と同じですが、各バイト値の出現回数がゼロのものだけの配列を返す(値が0の配列のみ)。
3 - 指定された文字列内で使われている文字で、重複は除く一意な文字のみ返却。
4 - 指定された文字列内では使用されていない全ての文字を返します。

解説

string 文字列内で各バイト値 (0~255) が存在する数をかぞえ、配列または文字列で返却します。
mode 0~2 では各バイト値をキーにした配列で返却し、mode 3,4 では0~255の各バイトに対応する文字で返却されます。

記述サンプル

//PHP 7.4.6で実行

/* mode (第二引数)が 0か省略時の場合 */
//文字列を指定
$string = 'AAABBC';

//実行
$result = count_chars($string);
var_dump($result);

//結果 0~255までの配列で、各バイト(65バイトであれば文字A)が何回出現しているかを表している
array(256) {
  [0]=>
  int(0)
  [1]=>
  int(0)
  ~省略~
  [64]=>
  int(0)
  [65]=>
  int(4)
  [66]=>
  int(3)
  [67]=>
  int(1)
  ~省略~
  int(0)
  [254]=>
  int(0)
  [255]=>
  int(0)
}

/* ----------------------------- */
/* mode が1の場合 */

//文字列を指定
$string = 'AAAAABBBC';

//実行
$result = count_chars($string, 1);
var_dump($result);

//結果 値が0(出現回数が0)のものは除外した配列
array(3) {
  [65]=>
  int(5)
  [66]=>
  int(3)
  [67]=>
  int(1)
}
/* ----------------------------- */
/* mode が2の場合 */

//文字列を指定
$string = 'AAAAABBBC';

//実行
$result = count_chars($string, 2);
var_dump($result);

//結果 値が0(出現回数が0)のみの配列
array(253) {
  [0]=>
  int(0)
  [1]=>
  int(0)
  ~省略~
  [254]=>
  int(0)
  [255]=>
  int(0)
}

/* ----------------------------- */
/* mode が3の場合 */

//文字列を指定
$string = 'AAAAABBBC';

//実行
$result = count_chars($string, 3);
var_dump($result);

//結果 一意な文字のみ返却(重複は除外され1字づつ返る)
string(3) "ABC"

/* ----------------------------- */
/* mode が4の場合 */

//文字列を指定
$string = 'AAAAABBBC';

//実行
$result = count_chars($string, 4);
var_dump($result);

//結果 指定された文字列では使われていないすべての文字が返る
string(253) "~省略~ !"#$%&'()*+,-./0123456789:;<=>?@DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ~省略~"

参考リンク

strpos 文字列内の部分文字列が最初に現れる場所を見つける
substr_count 副文字列の出現回数を数える

タグ

文字バイト 情報 String 文字列


公式リファレンス

書式

count_chars ( string $string [, int $mode = 0 ] ) : mixed

説明

string において各バイト値 (0..255) が存在する数をかぞえ、様々な手法で返します。

パラメータ

string
調べたい文字列。
mode
返り値を参照ください。

返値

mode の値により、 count_chars() は以下の値のどれかを返します。

  • 0 - 各バイト値をキー、各バイトの出現回数を値とする配列。
  • 1 - 0と同じですが、各バイト値の出現回数がゼロより大きいものの一覧となります。
  • 2 - 0と同じですが、各バイト値の出現回数がゼロであるものの一覧となります。
  • 3 - すべての一意な文字を含む文字列を返します。
  • 4 - 使用されていない全ての文字を含む文字列を返します。

サンプル

例1 count_chars() の例

$data = "Two Ts and one F."; foreach (count_chars($data, 1) as $i => $val) {    echo "There were $val instance(s) of \"" , chr($i) , "\" in the string.\n"; }

上の例の出力は以下となります。

There were 4 instance(s) of " " in the string. There were 1 instance(s) of "." in the string. There were 1 instance(s) of "F" in the string. There were 2 instance(s) of "T" in the string. There were 1 instance(s) of "a" in the string. There were 1 instance(s) of "d" in the string. There were 1 instance(s) of "e" in the string. There were 2 instance(s) of "n" in the string. There were 2 instance(s) of "o" in the string. There were 1 instance(s) of "s" in the string. There were 1 instance(s) of "w" in the string.

参考

  • strpos() - 文字列内の部分文字列が最初に現れる場所を見つける
  • substr_count() - 副文字列の出現回数を数える
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール