當前位置: 首頁> 最新文章列表> 用array_filter() 清洗數據後再統計

用array_filter() 清洗數據後再統計

M66 2025-06-07

在PHP 中,處理數據清洗和頻次統計是常見的需求。我們可以通過array_filter()清洗數據,去除不符合條件的元素,接著使用array_count_values()統計清洗後數據中各個元素的頻次。下面我們將通過具體示例來演示如何實現這一過程。

步驟一:使用array_filter()清洗數據

array_filter()函數可以根據回調函數的條件過濾數組中的元素,返回一個包含所有滿足條件元素的新數組。例如,我們可以使用該函數過濾掉數組中值為nullfalse的元素,或者根據某些其他條件篩選出符合條件的數據。

示例代碼:清洗數據

<?php
$data = [1, 2, 3, null, 4, false, 5, 6, '', 7];

// 使用 array_filter() 清洗數據,去除 null 和 false
$cleanedData = array_filter($data, function($value) {
    return $value !== null && $value !== false && $value !== '';
});

// 打印清洗後的數據
print_r($cleanedData);
?>

輸出:

 Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 4
    [6] => 5
    [7] => 6
    [8] => 7
)

在這個例子中, array_filter()會過濾掉nullfalse和空字符串'' ,只留下值為123等的元素。

步驟二:使用array_count_values()統計數據頻次

array_count_values()函數用於統計數組中每個值出現的次數。它返回一個關聯數組,鍵是數組中的唯一值,值是這些值出現的次數。我們可以將array_filter()清洗後的數據作為輸入,來統計每個元素的頻次。

示例代碼:統計數據頻次

<?php
// 使用 array_count_values() 統計清洗後的數據頻次
$frequency = array_count_values($cleanedData);

// 打印頻次統計結果
print_r($frequency);
?>

輸出:

 Array
(
    [1] => 1
    [2] => 1
    [3] => 1
    [4] => 1
    [5] => 1
    [6] => 1
    [7] => 1
)

通過array_count_values() ,我們可以看到清洗後的數據中每個元素的頻次。由於每個元素在示例中只出現了一次,因此輸出中每個值的頻次都是1

綜合示例

下面是一個完整的示例,結合了array_filter()array_count_values()

 <?php
$data = [1, 2, 3, null, 4, false, 5, 6, '', 7, 1, 2, 3];

// 使用 array_filter() 清洗數據,去除 null 和 false
$cleanedData = array_filter($data, function($value) {
    return $value !== null && $value !== false && $value !== '';
});

// 使用 array_count_values() 統計清洗後的數據頻次
$frequency = array_count_values($cleanedData);

// 打印頻次統計結果
print_r($frequency);
?>

輸出:

 Array
(
    [1] => 2
    [2] => 2
    [3] => 2
    [4] => 1
    [5] => 1
    [6] => 1
    [7] => 1
)

在這個例子中,我們先清洗掉了無效的數據,然後通過array_count_values()統計了每個元素的出現頻次。

總結

通過結合使用array_filter()array_count_values() ,我們可以輕鬆地清洗數據並統計數據頻次。 array_filter()可以根據自定義的條件過濾掉無效數據,而array_count_values()可以統計每個值出現的次數。這個組合在處理數組數據時非常有用,尤其是當你需要清理數據並進行頻次分析時。