當前位置: 首頁> 最新文章列表> 結合array_unique() 做初步去重前統計

結合array_unique() 做初步去重前統計

M66 2025-06-07

在PHP 中, array_unique()是一個非常常見的函數,用於從數組中移除重複的值。然而,在許多實際應用場景中,我們可能需要在去重之前,先統計數組中各個元素的出現頻率。下面,我們將展示如何結合array_unique()來在去重之前統計數組中元素的頻次。

1. array_count_values()函數:統計頻次

首先,我們需要使用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() ,我們可以很方便地得到每個元素在數組中出現的次數。

2. 結合array_unique()進行去重

接下來,我們希望在統計頻次之後,能夠去除數組中的重複元素。 array_unique()函數可以幫助我們完成去重操作。去重後的數組將只保留每個元素的一個實例,但需要注意的是,去重不會影響元素的頻次統計。

 <?php
// 去重
$unique_array = array_unique($array);

// 輸出去重後的數組
print_r($unique_array);
?>

輸出結果:

 Array
(
    [0] => apple
    [1] => banana
    [3] => orange
)

在去重後,數組中的重複元素只保留了一個,儘管元素的頻次已經通過array_count_values()函數得到了統計。

3. 結合頻次和去重的完整代碼示例

結合上述兩步,我們可以編寫一個完整的示例,先統計頻次,再去重,最後輸出去重後的數組及其元素頻次。

 <?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
)

通過這個示例,我們不僅能夠統計數組中每個元素的出現頻次,還能去除重複元素。

4. 進階應用:根據頻次進行排序

如果你需要根據頻次對元素進行排序,可以使用arsort()函數對頻次數組進行降序排序。然後,你可以根據排序後的結果獲取頻次較高的元素。

 <?php
// 對頻次數組進行降序排序
arsort($frequencies);

// 輸出排序後的頻次
echo "排序后的頻次統計:\n";
print_r($frequencies);
?>

輸出結果:

 排序后的頻次統計:
Array
(
    [apple] => 3
    [banana] => 2
    [orange] => 1
)

這樣,元素出現的頻次就從高到低排序了,方便你做進一步的數據處理。

以上就是如何在PHP 中結合array_unique()函數,先統計數組中元素的頻次,再進行去重的完整方法。通過使用array_count_values()來統計頻次,並結合array_unique()去重,你可以靈活地處理數組中的數據,滿足不同的需求。