利用できるPHPのバージョン | PHP 4, PHP 5, PHP 7 |
---|
PHPのarray_count_values
関数を使うと、配列にセットされている値の出現数をカウントする事ができます。
array_count_values
関数では配列要素の出現数をカウントする際、PHPの暗黙的な型変換が行われるため、String
型の数値とint
型の数値の違いは識別されず、同じ値としてカウントされます。
array_count_values( 配列 );
array_count_values
関数のパラメータは、値の出現数をカウントしたい配列をセットします。
パラメータが多次元配列の場合や、配列の値がString
型・int
型以外が含まれる場合は、PHPの警告(WARNING)が発生します。
array_count_values
関数の戻り値は、パラメータへセットした配列の値をキーとし、値の出現数がセットされた連想配列が戻ります。
警告発生時は、空の配列が戻ります。
array_count_values
関数は、値の出現数を取得する事が出来ますが、その他の関数を組み合わせることで配列要素のランキングを取得したり、配列要素の重複を確認する事ができます。
それでは、サンプルコードと共にarray_count_values
関数を使った例をいくつかご紹介します。
ここでは、配列を出現数の多い順に出力してみます。例えば、アンケート結果を人気順に表示するような場合に活用できます。
配列要素のランキングは下記フローで取得する事ができます。
① 配列要素の出現数を求める
② 上記①の配列を降順に並び変える
ランキングを求めたい配列
$variables = ['raspberry', 'banana', 'apple', 'banana', 'cake', 'apple', 'banana', 'apple', 'cake'];
① 配列の出現数を求める
$arrayCountValues = array_count_values( $variables );
② 配列を降順に並び変える
arsort( $arrayCountValues );
実際にサンプルコードで確認してみましょう。
配列要素の出現数の多い順にランキングした結果を取得する事が出来ました。
配列の要素に重複した値が存在するかを確認するサンプルコードは下記にてご紹介しています。