PHP에서 발전기는 메모리에서 온 디맨드 계산 시퀀스를 생성 할 수있는 매우 강력한 도구이며, 특히 많은 양의 데이터를 처리하는 데 적합하며 메모리 오버플로를 효과적으로 피할 수 있습니다. 이 기사에서는 생성기를 사용하여 전처리 데이터를 사용한 다음 PHP의 Array_Count_Values 함수를 사용하여 주파수를 계산하는 방법을 설명합니다.
Generator는 PHP의 특수 반복자로서 한 번에 모든 데이터를 메모리에로드하지 않고 데이터를 하나씩 생성 할 수 있습니다. 생성기는 수율 키워드를 통해 값을 반환하며, 이는 더 이상 값을 반환 할 수 없을 때까지 각 반복에서 다음 값을 계산할 수 있습니다.
특정 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"
];
// 생성기를 반환하십시오,한 번에 한 단어를 반환하십시오
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);