как создать таблицу html из php массив?

<p>как создать таблицу html из массива php? таблица с заголовком как<em> «заголовок» </em>,<em> «цена» </em>, и<em> «номер» </em>.</p><pre><code>$shop = array( array("rose", 1.25, 15), array("daisy", 0.75, 25), array("orchid", 1.15, 7 ), ); 

было бы лучше просто извлечь данные в массив следующим образом:<?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) ); ?> </code></pre><p>а затем сделайте что-то подобное, что должно работать хорошо, даже если позже вы добавите больше столбцов к своей таблице в базе данных.</p><pre><code><?php if (count($shop) > 0): ?> <table> <thead>  <?php echo implode('', array_keys(current($shop))); ?></th> </tr> </thead> <tbody> <?php foreach ($shop as $row): array\_map('htmlentities', $row); ?>  <?php echo implode('', $row); ?></td> </tr> <?php endforeach; ?> </tbody> </table> <?php endif; ?> </code></pre>

<p>вот мой:</p><pre><code><?php function build\_table($array){ // start table $html = '<table>'; // header row $html .= ''; foreach($array[0] as $key=>$value){ $html .= '' . htmlspecialchars($key) . '</th>'; } $html .= ''; // data rows foreach( $array as $key=>$value){ $html .= ''; foreach($value as $key2=>$value2){ $html .= '' . htmlspecialchars($value2) . '</td>'; } $html .= ''; } // 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>  title price number  <? foreach ($shop as $row) : ?>  <? echo $row[0]; ?></td> <td><? echo $row[1]; ?> <? echo $row[2]; ?></td> </tr> <? endforeach; ?> </table> </code></pre>

<pre><code>echo "<table><tr><th>title</th><th>price</th><th>number</th></tr>"; foreach($shop as $v){ echo "<tr>"; foreach($v as $vv){ echo "<td>{$vv}"; } echo ""; } echo "</table>"; 

вы также можете использовать <strong>array_reduce</strong> <a href="http://php.net/manual/en/function.array-reduce.php">array_reduce - итеративно уменьшить массив до одного значения, используя функцию обратного вызовапример:$tbody = array\_reduce($rows, function($a, $b){return $a.="<tr><td>".implode("</td><td>",$b)."";}); $thead = "<tr><th>" . implode("</th><th>", array\_keys($rows[0])) . ""; echo "<table>n$thead\n$tbodyn</table>"; 

создайте два цикла foreach и выполните итерацию по вашему массиву. распечатайте значение и добавьте теги html таблицы вокруг него.

echo '<table>titlepricenumber'; foreach($shop as $id => $item) { echo '<tr><td>'.$item[0].''.$item[1].'</td><td>'.$item[2].''; } echo '</table>'; 

 <table> <thead> titleprice>number </thead> <tbody> <?php foreach ($shop as $row) { echo ''; foreach ($row as $item) { echo "{$item}</td>"; } echo '</tr>'; } ?> </tbody> </table> </code></pre>

<p>вы можете использовать эту функцию. чтобы добавить заголовок таблицы, вы можете установить второй параметр <code>$mytablearrayheader и сделать то же самое с информацией заголовка перед телом:function inserttable($mytablearraybody) { $x = 0; $y = 0; $setablestr = '<table><tbody>'; while (isset($mytablearraybody[$y][$x])) { $setablestr .= ''; while (isset($mytablearraybody[$y][$x])) { $setablestr .= '' . $mytablearraybody[$y][$x] . '</td>'; $x++; } $setablestr .= '</tr>'; $x = 0; $y++; } $setablestr .= '</tbody></table>'; return $setablestr; } </code></pre>

<p>код php:</p><pre><code>$multiarray = array ( array("name"=>"argishti", "surname"=>"yeghiazaryan"), array("name"=>"armen", "surname"=>"mkhitaryan"), array("name"=>"arshak", "surname"=>"aghabekyan"), ); $count = 0; foreach ($multiarray as $arrays){ $count++; echo "<table>" ; echo "table $count</span>"; echo "<tr>"; foreach ($arrays as $names => $surnames){ echo "$names</th>"; echo "<td>$surnames"; } echo ""; echo "</table>"; } css:<pre class="lang-css prettyprint-override">table { font-family: arial, sans-serif; border-collapse: collapse; width: 100%; } td, th { border: 1px solid #dddddd; text-align: left; padding: 8px; } 

вы можете использовать <a href="http://php.net/foreach">foreach для итерации массива $shop</code> и получить один из массивов на каждой итерации для вывода его значений следующим образом:</p><pre><code>echo '<table>'; echo '<thead><tr><th>title</td><td>price</td><td>number</td></tr></thead>'; foreach ($shop as $item) { echo '<tr>'; echo '<td>'.$item[0].''; echo ''.$item[1].'</td>'; echo '<td>'.$item[2].''; echo ''; } echo '</table>'; 

вот мой ответ.function array2html($array, $table = true) { $out = ''; foreach ($array as $key => $value) { if (is_array($value)) { if (!isset($tableheader)) { $tableheader = '<th>' . implode('</th><th>', array\_keys($value)) . ''; } array_keys($value); $out .= ''; $out .= array2html($value, false); $out .= '</tr>'; } else { $out .= "$value</td>"; } } if ($table) { return '<table>' . $tableheader . $out . '</table>'; } else { return $out; } } </code></pre><p>тем не менее, заголовки вашей таблицы должны быть частью массива, что довольно часто встречается в базе данных. например.</p><pre><code>$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, ), ); print arraytohtml($shop); </code></pre><p>надеюсь, поможет ;)</p>

<p>массив в таблицу . массив в div . json в таблицу . json в div.</p><p>все прекрасно справляются с этим классом. <a href="https://github.com/delickate/php/tree/master/arrayinto">нажмите здесь, чтобы получить класс</a> </p><p>как это использовать?</p><p>просто возьми и возрази</p><pre><code>$obj = new arrayinto(); создайте массив, который вы хотите преобразовать$obj->array\_object = array("aaa" => "1111", "bbb" => "2222", "ccc" => array("ccc-1" => "123", "ccc-2" => array("ccc-2222-a" => "ca2", "ccc-2222=b" => "cb2" ) ) ); </code></pre><p>если вы хотите конвертировать массив в таблицу. назови это.</p><pre><code>$result = $obj->process\_table(); </code></pre><p>если вы хотите конвертировать array в div. назови это.</p><pre><code>$result = $obj->process\_div(); </code></pre><p>предположим, если у вас есть json</p><pre><code>$obj->json_string = '{ "aaa":"11111", "bbb":"22222", "ccc":[ { "ccc-1":"123" }, { "ccc-2":"456" } ] } '; вы можете преобразовать в таблицу/div, как это$result = $obj->process_json('div'); or$result = $obj->process_json('table'); надеюсь, это поможет вам.

<?php echo "<table>  title price number "; for ($i=0; $i<count($shop, 0); $i++) { echo ''; for ($j=0; $j<3; $j++) { echo '<td>'.$shop[$i][$j].'</td>'; } echo '</tr>'; } echo '</table>'; </code></pre><p>вы можете оптимизировать это, но это должно сделать.</p>