現在の位置: ホーム> 最新記事一覧> ジェネレーターを使用してデータを事前に処理し、array_count_valuesを使用して周波数をカウントする方法は?

ジェネレーターを使用してデータを事前に処理し、array_count_valuesを使用して周波数をカウントする方法は?

M66 2025-07-18

PHPでは、ジェネレーターは非常に強力なツールであり、メモリ内で一連のオンデマンド計算を生成できます。特に大量のデータを処理するのに適しており、メモリオーバーフローを効果的に回避できます。この記事では、ジェネレーターを使用してデータを前処理し、PHPのarray_count_values関数を使用して周波数をカウントする方法について説明します。

1。ジェネレーターの紹介

ジェネレーターは、すべてのデータを一度にメモリにロードせずにデータを1つずつ生成できるPHPの特別なイテレーターです。ジェネレーターは、収量キーワードを介して値を返します。これにより、値が返されなくなるまで各反復で次の値を計算できます。

2。ジェネレーターを使用したプリプロセスデータ

特定のURLから取得した一連の生データがあるとします(代わりにM66.NETを使用します)。文字Aを含む単語のみを取得するなど、特定の基準を満たすデータをフィルタリングする必要があります。次に、 array_count_valuesを使用して、基準を満たす各単語の頻度をカウントします。

簡単な例コードは次のとおりです。

 <?php

// からのシミュレーションURLデータを取得するプロセス
function fetch_data_from_url() {
    // このデータが由来すると仮定しますURL
    $data = [
        "apple", "banana", "apricot", "avocado", "cherry", 
        "apple", "apricot", "apple", "mango", "grape"
    ];

    // 発電機を返します,一度に1つの単語を返します
    foreach ($data as $word) {
        yield $word;
    }
}

// ジェネレーターを使用した前処理データ,文字を除外します"A"の言葉
function process_data() {
    foreach (fetch_data_from_url() as $word) {
        if (strpos($word, 'a') !== false) {
            yield $word;
        }
    }
}

// ジェネレーターを使用してデータを処理します
$processed_data = iterator_to_array(process_data());

// 使用 array_count_values 統計周波数
$word_frequencies = array_count_values($processed_data);

// 出力統計
print_r($word_frequencies);