How to create a HTML Table from a PHP array? How to create a HTML Table from a PHP array? arrays arrays

How to create a HTML Table from a PHP array?


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'=>'tom@example.org', 'company'=>'example ltd'),    array('first'=>'hugh', 'last'=>'blogs', 'email'=>'hugh@example.org', 'company'=>'example ltd'),    array('first'=>'steph', 'last'=>'brown', 'email'=>'steph@example.org', 'company'=>'example ltd'));echo build_table($array);?>


   <table>     <tr>       <td>title</td>       <td>price</td>       <td>number</td>     </tr>     <? foreach ($shop as $row) : ?>     <tr>       <td><? echo $row[0]; ?></td>       <td><? echo $row[1]; ?></td>       <td><? echo $row[2]; ?></td>     </tr>     <? endforeach; ?>   </table>