在PHP 中, array_unique()是一個非常常見的函數,用於從數組中移除重複的值。然而,在許多實際應用場景中,我們可能需要在去重之前,先統計數組中各個元素的出現頻率。下面,我們將展示如何結合array_unique()來在去重之前統計數組中元素的頻次。
首先,我們需要使用PHP 提供的array_count_values()函數來統計數組中每個元素的頻次。該函數會返回一個關聯數組,其中鍵是原始數組中的元素,值是該元素在數組中出現的次數。
<?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()函數可以幫助我們完成去重操作。去重後的數組將只保留每個元素的一個實例,但需要注意的是,去重不會影響元素的頻次統計。
<?php
// 去重
$unique_array = array_unique($array);
// 輸出去重後的數組
print_r($unique_array);
?>
輸出結果:
Array
(
[0] => apple
[1] => banana
[3] => orange
)
在去重後,數組中的重複元素只保留了一個,儘管元素的頻次已經通過array_count_values()函數得到了統計。
結合上述兩步,我們可以編寫一個完整的示例,先統計頻次,再去重,最後輸出去重後的數組及其元素頻次。
<?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_count_values()來統計頻次,並結合array_unique()去重,你可以靈活地處理數組中的數據,滿足不同的需求。