How do I create a HTML table from a PHP array? A table with heading as 'title', 'price', and 'number'.
$shop = array( array("rose", 1.25, 15), array("daisy", 0.75, 25), array("orchid", 1.15, 7 ), );
You can create a table using the <table> element. Inside the <table> element, you can use the <tr> elements to create rows, and to create columns inside a row you can use the <td> elements. You can also define a cell as a header for a group of table cells using the <th> element.
It would be better to just fetch the data into array like this:
<?php $shop = array( array("title"=>"rose", "price"=>1.25 , "number"=>15), array("title"=>"daisy", "price"=>0.75 , "number"=>25), array("title"=>"orchid", "price"=>1.15 , "number"=>7) ); ?>
And then do something like this, which should work well even when you add more columns to your table in the database later.
<?php if (count($shop) > 0): ?> <table> <thead> <tr> <th><?php echo implode('</th><th>', array_keys(current($shop))); ?></th> </tr> </thead> <tbody> <?php foreach ($shop as $row): array_map('htmlentities', $row); ?> <tr> <td><?php echo implode('</td><td>', $row); ?></td> </tr> <?php endforeach; ?> </tbody> </table> <?php endif; ?>
Here's mine:
<?php function build_table($array){ // start table $html = '<table>'; // header row $html .= '<tr>'; foreach($array[0] as $key=>$value){ $html .= '<th>' . htmlspecialchars($key) . '</th>'; } $html .= '</tr>'; // data rows foreach( $array as $key=>$value){ $html .= '<tr>'; foreach($value as $key2=>$value2){ $html .= '<td>' . htmlspecialchars($value2) . '</td>'; } $html .= '</tr>'; } // finish table and return it $html .= '</table>'; return $html; } $array = array( array('first'=>'tom', 'last'=>'smith', 'email'=>'[email protected]', 'company'=>'example ltd'), array('first'=>'hugh', 'last'=>'blogs', 'email'=>'[email protected]', 'company'=>'example ltd'), array('first'=>'steph', 'last'=>'brown', 'email'=>'[email protected]', 'company'=>'example ltd') ); echo build_table($array); ?>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With