Priya R Priya R
Updated date Nov 09, 2023
In this blog, we will learn how to transform PHP arrays into visually appealing HTML tables using various methods.

Introduction:

When working with PHP, you might often need to display data in a visually organized and user-friendly manner. One common way to achieve this is by converting an array of data into an HTML table. In this blog, we will explore simple methods to convert an array to an HTML table in PHP

Method 1: Using Loops to Generate HTML Table

The first method involves using loops to iterate through the array and generate HTML code for each row and cell. Let's take a look at the PHP code for this approach:

<?php
// Sample data array
$data = [
    ['Name', 'Age', 'Country'],
    ['John', 25, 'USA'],
    ['Alice', 30, 'UK'],
    ['Bob', 28, 'Canada'],
];

// Start building the HTML table
$htmlTable = '<table border="1">';
foreach ($data as $row) {
    $htmlTable .= '<tr>';
    foreach ($row as $cell) {
        $htmlTable .= '<td>' . $cell . '</td>';
    }
    $htmlTable .= '</tr>';
}
$htmlTable .= '</table>';

// Display the HTML table
echo $htmlTable;
?>

Output:

The code above will generate the following HTML table:

Name Age Country
John 25 USA
Alice 30 UK
Bob 28 Canada

In this method, we use nested loops to iterate through the array, constructing table rows and cells along the way. This is a straightforward approach, but it can become cumbersome when dealing with larger datasets.

Method 2: Using the foreach Loop with Inline HTML

Method 2 simplifies the code by using a foreach loop to directly output HTML elements within the loop. This approach reduces the need for string concatenation. Here's the code for Method 2:

<?php
// Sample data array
$data = [
    ['Name', 'Age', 'Country'],
    ['John', 25, 'USA'],
    ['Alice', 30, 'UK'],
    ['Bob', 28, 'Canada'],
];

// Start building the HTML table
echo '<table border="1">';
foreach ($data as $row) {
    echo '<tr>';
    foreach ($row as $cell) {
        echo '<td>' . $cell . '</td>';
    }
    echo '</tr>';
}
echo '</table>';
?>

Output:

This code will produce the same HTML table as Method 1:

Name Age Country
John 25 USA
Alice 30 UK
Bob 28 Canada

Method 2 is more concise and easier to read than Method 1 since it doesn't require variable concatenation. It's a popular choice for generating HTML tables from arrays in PHP.

Method 3: Using array_map and implode

There are several ways to achieve the same result, and one such method involves using the array_map function in combination with implode. Here's how you can do it:

<?php
// Sample data array
$data = [
    ['Name', 'Age', 'Country'],
    ['John', 25, 'USA'],
    ['Alice', 30, 'UK'],
    ['Bob', 28, 'Canada'],
];

// Create a function to generate table rows
function createRow($row) {
    return '<tr><td>' . implode('</td><td>', $row) . '</td></tr>';
}

// Use array_map to apply the function to each row
$rows = array_map('createRow', $data);

// Start building the HTML table
echo '<table border="1">' . implode('', $rows) . '</table>';
?>

Output:

The code above will produce the same HTML table as the previous methods:

Name Age Country
John 25 USA
Alice 30 UK
Bob 28 Canada

This method leverages the power of PHP's array functions, making the code cleaner and more maintainable. It's particularly useful when dealing with complex data transformations before generating the table.

Conclusion:

In this blog, we have explored various methods to convert an array into an HTML table in PHP. Method 1 demonstrated a basic approach using nested loops for creating the table structure. Method 2 simplified the code by outputting HTML directly within a foreach loop, making it more concise. Method 3 utilized the array_map function and implode to create an HTML table, which can be more efficient for complex data manipulation.

Comments (0)

There are no comments. Be the first to comment!!!