関数・クラス解説
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.
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール