How can PHP be used to group and calculate averages from CSV data effectively?

To group and calculate averages from CSV data effectively using PHP, we can read the CSV file, group the data based on a specific column, calculate the average for each group, and then output the results. This can be achieved by using PHP functions like fgetcsv() to read the CSV file, array_column() to group the data, array_sum() and count() to calculate the averages, and foreach loop to iterate over the grouped data.

<?php
// Read the CSV file
$csvFile = 'data.csv';
$csvData = array_map('str_getcsv', file($csvFile));

// Group the data by a specific column
$groupedData = [];
foreach ($csvData as $row) {
    $key = $row[0]; // Assuming the first column is the grouping column
    $groupedData[$key][] = $row;
}

// Calculate averages for each group
$averages = [];
foreach ($groupedData as $key => $group) {
    $values = array_column($group, 1); // Assuming the second column contains the values to average
    $average = array_sum($values) / count($values);
    $averages[$key] = $average;
}

// Output the averages
foreach ($averages as $key => $average) {
    echo "Average for group $key: $average\n";
}
?>