php count_charsで文字列の各バイトの存在する値を取得する

  • 作成日 2020.12.08
  • php
php count_charsで文字列の各バイトの存在する値を取得する

phpで、count_charsを使用して、文字列の各バイトの存在する値を取得するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

count_chars使い方

count_charsを使用すれば、文字列の各バイト(0~ 255)の存在する値を取得することが可能です。

$result = count_chars(文字列);

以下は、文字列の各バイト(0~ 255)の存在する値を取得するサンプルコードとなります。

<?php

$str = "mebee";

$result = count_chars($str);

print_r($result);

実行結果

Array
(
    [0] => 0
    [1] => 0
  .
  .
      
    [97] => 0
    [98] => 1
    [99] => 0
    [100] => 0
    [101] => 3
    [102] => 0
    [103] => 0
    [104] => 0
    [105] => 0
    [106] => 0
    [107] => 0
    [108] => 0
    [109] => 1
  .
  .
    [254] => 0
    [255] => 0
)

見にくいので、「0」以外のキー名のみ取得します。

<?php

$str = "mebee";

$result = count_chars($str);

foreach ($result as $k => $v) {
    if ($result[$k] != 0) echo $k . PHP_EOL;
}

実行結果

98
101
109

第二引数に「1」を指定すると、ほぼ上記と同じことができます。

<?php

$str = "mebee";

$result = count_chars($str,1);

print_r($result);

実行結果

Array
(
    [98] => 1
    [101] => 3
    [109] => 1
)

第二引数に使用できるオプションは以下の通りとなります。

0 : キーと出現回数を値した配列を出力
1 : キーと出現回数を値した配列でゼロ以外のものを出力
2 : キーと出現回数を値した配列でゼロのものを出力
3 : 利用されている文字列を返す
4 : 利用されていない文字列を返す

オプション「3」を使用した例は以下となります。

<?php

$str = "mebee";

$result = count_chars($str,3);

print_r($result);

実行結果

bem