PHPでは、多くの場合、データをフィルタリングしてカウントする必要があります。 array_filter()とarray_count_values()は、2つの非常に便利な関数です。 array_filter()は、条件に基づいてarrayで要素をフィルタリングでき、 array_count_values()はarrayの値をカウントして結果を返すことができます。これら2つの機能を組み合わせることで、アレイの複雑なスクリーニングを効率的に実行し、これに基づいて統計分析を実施できます。
array_filter()関数は2つのパラメーターを受け入れます。1つ目は配列で、2つ目はコールバック関数です。コールバック関数は、フィルタリング条件を定義するために使用され、条件を満たす要素のみが保持されます。
たとえば、複数のURLを備えた配列があり、ドメイン名M66.netからすべてのURLをフィルタリングする必要があるとします。
<?php
// オリジナル配列
$urls = [
'https://m66.net/page1',
'https://example.com/page2',
'https://m66.net/page3',
'https://otherdomain.net/page4',
'https://m66.net/page5',
];
// 使用 array_filter() 除外します m66.net ドメイン名 URL
$filteredUrls = array_filter($urls, function ($url) {
return strpos($url, 'm66.net') !== false;
});
// フィルタリングされた配列を印刷します
print_r($filteredUrls);
?>
出力結果:
Array
(
[0] => https://m66.net/page1
[2] => https://m66.net/page3
[4] => https://m66.net/page5
)
この例では、 array_filter()を使用して、 m66.netを含むすべてのURLをフィルタリングします。
array_count_values()関数は、各値が元の配列に表示される回数を含む配列を返します。統計分析のために、フィルタリングされた結果をarray_count_values()に渡すことができます。
たとえば、 M66.NETドメイン名が表示される回数をカウントします。
<?php
// 使用 array_count_values() 統計発生数
$urlCount = array_count_values($filteredUrls);
// 統計の結果を印刷します
print_r($urlCount);
?>
出力結果:
Array
(
[https://m66.net/page1] => 1
[https://m66.net/page3] => 1
[https://m66.net/page5] => 1
)
この例では、 array_count_values()は、各URLの発生数を返します。各URLは配列に1回しか表示されないため、結果の各URLは1です。
array_filter()とarray_count_values()を組み合わせることにより、データを正確にフィルタリングして統計分析を実行できます。このアプローチは、複雑なデータスクリーニングと分析タスクの処理に最適です。
たとえば、異なるURLと訪問数を含むより複雑な配列があるとしますが、最初に基準を満たすURLを除外し、各URLの発生頻度をカウントできます。
<?php
// オリジナル配列,訪問を含む
$urlsWithVisits = [
'https://m66.net/page1' => 10,
'https://example.com/page2' => 5,
'https://m66.net/page3' => 8,
'https://otherdomain.net/page4' => 12,
'https://m66.net/page5' => 15,
];
// 除外します m66.net ドメイン名 URL
$filteredUrlsWithVisits = array_filter($urlsWithVisits, function ($url) {
return strpos($url, 'm66.net') !== false;
}, ARRAY_FILTER_USE_KEY);
// 訪問の統計
$urlVisitCount = array_count_values($filteredUrlsWithVisits);
// 結果を印刷します
print_r($urlVisitCount);
?>
出力結果:
Array
(
[10] => 1
[8] => 1
[15] => 1
)
この例では、 array_filter()を使用してM66.netドメイン名のURLをフィルタリングし、 array_count_values()は、これらのURLが表示される回数をカウントします。
array_filter()とarray_count_values()を組み合わせることにより、配列データを柔軟にフィルタリングおよび統計的に分析できます。この方法は、特にコードの読みやすさと実行効率を効果的に改善できる大規模なデータセットを処理する場合、さまざまなデータフィルタリングと統計シナリオに適しています。