Are there any best practices for structuring HTML tables in PHP to maintain readability and flexibility?

When structuring HTML tables in PHP, it is important to separate the HTML markup from the PHP logic to maintain readability and flexibility. One way to achieve this is by using a loop to dynamically generate table rows based on data retrieved from a database or other source. By keeping the PHP logic separate from the HTML markup, it becomes easier to make changes to the table structure without affecting the underlying data manipulation.

<?php
// Sample data retrieved from a database
$data = [
    ['Name' => 'John Doe', 'Age' => 30, 'Location' => 'New York'],
    ['Name' => 'Jane Smith', 'Age' => 25, 'Location' => 'Los Angeles'],
    ['Name' => 'Bob Johnson', 'Age' => 35, 'Location' => 'Chicago']
];

// Start the table
echo '<table>';
echo '<tr><th>Name</th><th>Age</th><th>Location</th></tr>';

// Loop through the data to generate table rows
foreach ($data as $row) {
    echo '<tr>';
    echo '<td>' . $row['Name'] . '</td>';
    echo '<td>' . $row['Age'] . '</td>';
    echo '<td>' . $row['Location'] . '</td>';
    echo '</tr>';
}

// End the table
echo '</table>';
?>