What are the best practices for grouping and sorting data in PHP to achieve a specific table layout, like in the example provided?

When grouping and sorting data in PHP to achieve a specific table layout, it is important to first organize the data in a way that makes sense for the desired layout. This can involve grouping related data together and sorting it based on specific criteria. Once the data is organized, it can be easily displayed in a table format using HTML and PHP.

// Sample data array
$data = [
    ['name' => 'John', 'age' => 25, 'city' => 'New York'],
    ['name' => 'Alice', 'age' => 30, 'city' => 'Los Angeles'],
    ['name' => 'Bob', 'age' => 22, 'city' => 'Chicago'],
    ['name' => 'Eve', 'age' => 28, 'city' => 'Miami']
];

// Group data by city
$groupedData = [];
foreach ($data as $row) {
    $groupedData[$row['city']][] = $row;
}

// Sort data within each city group by age
foreach ($groupedData as $city => $rows) {
    usort($rows, function($a, $b) {
        return $a['age'] - $b['age'];
    });
    $groupedData[$city] = $rows;
}

// Display data in a table layout
echo '<table>';
echo '<tr><th>Name</th><th>Age</th><th>City</th></tr>';
foreach ($groupedData as $city => $rows) {
    echo '<tr><td colspan="3"><strong>' . $city . '</strong></td></tr>';
    foreach ($rows as $row) {
        echo '<tr><td>' . $row['name'] . '</td><td>' . $row['age'] . '</td><td>' . $row['city'] . '</td></tr>';
    }
}
echo '</table>';