PHPでは、配列を処理する場合、アレイ内の高周波要素(つまり、最も表示される要素)を見つける必要があることがよくあります。 PHPは、 Array_count_values()とarray_keys()が2つの非常に有用な関数であるこの関数を実装するのに役立ついくつかの組み込み関数を提供します。
この記事では、これら2つの機能を介して配列内の高周波要素を取得し、サンプルコードを介してそれを実証する方法を紹介します。
array_count_values()関数は連想配列を返すことができ、キーは入力配列の要素であり、値はこれらの要素が元の配列に表示される回数です。
<?php
// アレイの例
$array = array("apple", "banana", "apple", "orange", "banana", "apple");
// 使用 array_count_values 要素の発生数を取得します
$counts = array_count_values($array);
// 出力要素が表示される回数
print_r($counts);
?>
出力結果:
Array
(
[apple] => 3
[banana] => 2
[orange] => 1
)
この例では、 array_count_values()関数が配列内の各要素の発生数を正常にカウントすることがわかります。
次に、最も表示される要素を見つけたいと思います。これを行うには、 array_count_values()とarray_keys()を組み合わせて実現できます。
<?php
// アレイの例
$array = array("apple", "banana", "apple", "orange", "banana", "apple");
// 要素の発生数を取得します
$counts = array_count_values($array);
// 最大値を見つけます
$maxCount = max($counts);
// 発生数が最大値に等しい要素を取得します
$mostFrequent = array_keys($counts, $maxCount);
// 出力高周波要素
print_r($mostFrequent);
?>
出力結果:
Array
(
[0] => apple
)
この例では、 Array_count_values()を介してArray内の各要素の発生数を最初に数え、 Max()を使用して最大発生を取得し、 Array_Keys()を使用して、発生が最大に等しいすべての要素を取得します。この例では、「Apple」がほとんどの時間に表示されるため、高頻度の要素です。
配列内の複数の要素が同じ回数が表示され、すべてが最も高い周波数要素である場合、 array_keys()はこれらすべての要素を含む配列を返します。
<?php
// アレイの例,複数の高周波要素
$array = array("apple", "banana", "apple", "orange", "banana", "apple", "orange");
// 要素の発生数を取得します
$counts = array_count_values($array);
// 最大値を見つけます
$maxCount = max($counts);
// 発生数が最大値に等しい要素を取得します
$mostFrequent = array_keys($counts, $maxCount);
// 出力高周波要素
print_r($mostFrequent);
?>
出力結果:
Array
(
[0] => apple
[1] => banana
)
この例では、「リンゴ」と「バナナ」の両方が最も一般的な要素であるため、どちらも高周波要素と見なされます。
array_count_values()およびarray_keys()関数を使用することにより、Arrayに高周波要素を簡単に見つけることができます。まず、 Array_count_values()を使用して要素の発生数をカウントし、 max()およびarray_keys()関数を使用して、最も発生する要素を見つけて返すようにします。複数の高周波要素がある場合、 array_keys()はこれらすべての要素を返します。