How can the issue of displaying the subtotal only once under each group be addressed in the given PHP script?

To address the issue of displaying the subtotal only once under each group, we can use a flag variable to keep track of whether the subtotal has been displayed for a particular group. We can set the flag variable to false at the beginning of each group and only display the subtotal if the flag is false. After displaying the subtotal, we can set the flag to true to indicate that it has been displayed for that group.

<?php
$group = ""; // Variable to store the current group
$subtotal = 0; // Variable to store the subtotal
$subtotalDisplayed = false; // Flag variable to track if subtotal has been displayed

foreach ($data as $row) {
    if ($row['group'] != $group) {
        if ($subtotalDisplayed) {
            echo "Subtotal: $subtotal<br>";
        }
        $group = $row['group'];
        $subtotal = 0;
        $subtotalDisplayed = false;
    }

    // Calculate subtotal
    $subtotal += $row['amount'];

    // Display row data
    echo $row['name'] . ": " . $row['amount'] . "<br>";

    if (!$subtotalDisplayed) {
        $subtotalDisplayed = true;
    }
}

// Display the final subtotal
if ($subtotalDisplayed) {
    echo "Subtotal: $subtotal<br>";
}
?>