php array_count_valuesで配列内の少数の値をカウントする

  • 作成日 2021.01.02
  • 更新日 2022.03.11
  • php
php array_count_valuesで配列内の少数の値をカウントする

phpで、array_count_valuesを使用して、配列内の少数の値をカウントするサンプルコードを記述してます。phpのバージョンは8.0です。

環境

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

array_count_values使い方

array_count_valuesを使用すれば、配列内の同じ値を数をカウントすることができますが、

array_combine(配列, 配列)

以下のように少数があるとWarningとなり結果は空になってしまいます。

<?php

$arr = [1.11, 1.11, 2.222, 2.222, 3.3];

$result = array_count_values($arr);

print_r($result);


<出力結果>
PHP Warning:  array_count_values(): Can only count string and integer values, entry skipped in

なので、一度文字列に変換するとカウントすることが可能になります。

<?php

$arr = [1.11, 1.11, 2.222, 2.222, 3.3];

$arr = array_map(fn ($x) => (string)$x, $arr);

$result = array_count_values($arr);

print_r($result);

実行結果

Array
(
    [1.11] => 2
    [2.222] => 2
    [3.3] => 1
)