PHPでは、 Array_unique()は、Arrayから重複した値を削除するための非常に一般的な関数です。ただし、多くの実用的なアプリケーションシナリオでは、重複する前に配列内の各要素の発生頻度をカウントする必要がある場合があります。以下に、 Array_unique()を組み合わせて、重複排除の前に配列内の要素の頻度をカウントする方法を示します。
まず、 ARRAY_COUNT_VALUES()関数を使用して、Array内の各要素の周波数をカウントするために提供する必要があります。この関数は、キーが元の配列の要素であり、値は要素が配列に表示される回数である関連配列を返します。
<?php
// オリジナル配列
$array = ["apple", "banana", "apple", "orange", "banana", "apple"];
// 統計頻度
$frequencies = array_count_values($array);
// 出力周波数統計の結果
print_r($frequencies);
?>
出力結果:
Array
(
[apple] => 3
[banana] => 2
[orange] => 1
)
array_count_values()を介して、各要素が配列に表示される回数を簡単に取得できます。
次に、周波数をカウントした後、配列内の重複要素を削除したいと考えています。 array_unique()関数は、重複排除操作を完了するのに役立ちます。重複排除後の配列は、各要素の1つのインスタンスのみを保持しますが、重複排除は要素の周波数統計に影響しないことに注意する必要があります。
<?php
// 重いものに行きます
$unique_array = array_unique($array);
// 输出重いものに行きます后的数组
print_r($unique_array);
?>
出力結果:
Array
(
[0] => apple
[1] => banana
[3] => orange
)
重複排除の後、アレイ内の1つの重複要素のみが保持されますが、要素の周波数はarray_count_values()関数を介してカウントされています。
上記の2つのステップに基づいて、完全な例を記述し、最初に周波数をカウントし、次に重複排除をカウントし、最終的に重複排除後に配列とその要素周波数を出力することができます。
<?php
// オリジナル配列
$array = ["apple", "banana", "apple", "orange", "banana", "apple"];
// 統計頻度
$frequencies = array_count_values($array);
// 重いものに行きます
$unique_array = array_unique($array);
// 出力周波数統計の結果
echo "周波数統計:\n";
print_r($frequencies);
// 输出重いものに行きます后的数组
echo "重いものに行きます后的数组:\n";
print_r($unique_array);
?>
出力結果:
周波数統計:
Array
(
[apple] => 3
[banana] => 2
[orange] => 1
)
重いものに行きます后的数组:
Array
(
[0] => apple
[1] => banana
[3] => orange
)
この例を通じて、配列内の各要素の発生頻度をカウントするだけでなく、重複要素を削除することもできます。
要素を頻度ごとに並べ替える必要がある場合は、 Arsort()関数を使用して、周波数アレイを降順で並べ替えることができます。次に、ソートされた結果に基づいて、より高い頻度の要素を取得できます。
<?php
// 周波数アレイを降順で並べ替えます
arsort($frequencies);
// ソートされた周波数を出力します
echo "排序后的周波数統計:\n";
print_r($frequencies);
?>
出力結果:
排序后的周波数統計:
Array
(
[apple] => 3
[banana] => 2
[orange] => 1
)
このようにして、高から低いものに表示される要素の頻度がソートされているため、さらなるデータ処理を行うことができます。
上記は、PHPのArray_unique()関数を組み合わせ、最初にArray内の要素の頻度をカウントし、次に重複排除の完全な方法です。 array_count_values()を使用して頻度をカウントし、 array_unique()を組み合わせて控除することにより、アレイ内のデータを柔軟に処理して、さまざまなニーズを満たすことができます。