Подтвердить что ты не робот

Как создать таблицу HTML из массива PHP?

Как создать таблицу HTML из массива PHP? Таблица с заголовком "название", "цена" и "номер".

$shop = array(
    array("rose",   1.25, 15),
    array("daisy",  0.75, 25),
    array("orchid", 1.15, 7 ),
); 
4b9b3361

Ответ 1

Было бы лучше просто получить данные в массив следующим образом:

<?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) 
             ); 
?>

И затем сделайте что-то вроде этого, которое должно хорошо работать, даже если вы добавите больше столбцов в свою таблицу в базе данных позже.

<?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; ?>

Ответ 2

Здесь моя:

<?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);
?>

Ответ 3

   <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>

Ответ 4

Вы также можете использовать array_reduce

array_reduce - Итеративно уменьшить массив до одного значения, используя функцию обратного вызова

пример:

$tbody = array_reduce($rows, function($a, $b){return $a.="<tr><td>".implode("</td><td>",$b)."</td></tr>";});
$thead = "<tr><th>" . implode("</th><th>", array_keys($rows[0])) . "</th></tr>";

echo "<table>\n$thead\n$tbody\n</table>";

Ответ 5

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}</td>";
    }
    echo "<tr>";
}
echo "</table>";

Ответ 6

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

Ответ 7

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

Ответ 8

PHP-код:

$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 "<span>table $count</span>";
    echo "<tr>";
    foreach ($arrays as $names => $surnames){

        echo "<th>$names</th>";
        echo "<td>$surnames</td>";

    }
    echo "</tr>";
    echo "</table>";
}

CSS

table {
    font-family: arial, sans-serif;
    border-collapse: collapse;
    width: 100%;
}

td, th {
    border: 1px solid #dddddd;
    text-align: left;
    padding: 8px;``
}

Ответ 9

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

Ответ 10

Вы можете использовать эту функцию. Чтобы добавить заголовок таблицы, вы можете настроить второй параметр $myTableArrayHeader и сделать то же самое с информацией заголовка перед телом:

function insertTable($myTableArrayBody) {
    $x = 0;
    $y = 0;
    $seTableStr = '<table><tbody>';
    while (isset($myTableArrayBody[$y][$x])) {
        $seTableStr .= '<tr>';
        while (isset($myTableArrayBody[$y][$x])) {
            $seTableStr .= '<td>' . $myTableArrayBody[$y][$x] . '</td>';
            $x++;
        }
        $seTableStr .= '</tr>';
        $x = 0;
        $y++;
    }
    $seTableStr .= '</tbody></table>';
    return $seTableStr;
}

Ответ 11

Это один из лучших, самых простых и эффективных способов сделать это. Вы можете конвертировать массивы в таблицы с любым количеством столбцов или строк. Он принимает ключи массива в качестве заголовка таблицы. Нет необходимости в массиве.

function array_to_table($matriz) 
{   
   echo "<table>";

   // Table header
        foreach ($matriz[0] as $clave=>$fila) {
            echo "<th>".$clave."</th>";
        }

    // Table body
       foreach ($matriz as $fila) {
           echo "<tr>";
           foreach ($fila as $elemento) {
                 echo "<td>".$elemento."</td>";
           } 
          echo "</tr>";
       } 
   echo "</table>";}

Ответ 12

<?php

echo "<table>
<tr>
<th>title</th>
<th>price</th>
<th>number</th>
</tr>";
for ($i=0; $i<count($shop, 0); $i++)
{
    echo '<tr>';
    for ($j=0; $j<3; $j++)
    {
        echo '<td>'.$shop[$i][$j].'</td>';
    }
    echo '</tr>';
}
echo '</table>';

Вы можете оптимизировать его, но это должно сделать.

Ответ 13

Вы можете использовать foreach для повторения массива $shop и получения одного из массивов с каждой итерацией, чтобы эхо его значения, такие как это:

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].'</td>';
    echo '<td>'.$item[1].'</td>';
    echo '<td>'.$item[2].'</td>';
    echo '</tr>';
}
echo '</table>';

Ответ 14

Вот мой ответ.

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)) .
                    '</th>';
            }
            array_keys($value);
            $out .= '<tr>';
            $out .= array2Html($value, false);
            $out .= '</tr>';
        } else {
            $out .= "<td>$value</td>";
        }
    }

    if ($table) {
        return '<table>' . $tableHeader . $out . '</table>';
    } else {
        return $out;
    }
}

Однако ваши заголовки таблиц должны быть частью массива, что довольно часто встречается в базе данных. например.

$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);

Надеюсь, что это поможет;)

Ответ 15

Массив в таблицу. Массив в div. JSON в таблицу. JSON в div.

Все отлично справляются с этим классом. Нажмите здесь, чтобы получить класс

Как его использовать?

Просто получите и объект

$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"
                                                 )
                                )

                 );

Если вы хотите преобразовать Array в таблицу. Назовите это.

$result = $obj->process_table();

Если вы хотите преобразовать Array в div. Назовите это.

$result = $obj->process_div();

Предположим, что если у вас есть JSON

$obj->json_string = '{
            "AAA":"11111",
            "BBB":"22222",
            "CCC":[
                    {
                        "CCC-1":"123"
                    },
                    {
                        "CCC-2":"456"
                    }
                  ] 
         }
        ';

Вы можете преобразовать в таблицу /div как

$result = $obj->process_json('div');

ИЛИ

$result = $obj->process_json('table');

Надеюсь, это вам поможет.

Ответ 16

<table id="usuarios">
        <tbody>
           <tr>
              <th>Nombre</th>
              <th>Apellido</th>
              <th>Email</th>
              <th>Institución educativa</th>
              <th>Fecha Registro</th>
           </tr>
           <?php
           if ($result->num_rows > 0) {// output data of each row
            while($row = $result->fetch_assoc()) {
                echo "<tr><td>".$row["Nombre"]."</td>";
                echo "<td>".$row["Apellido"]."</td>";
                echo "<td>".$row["Email"]."</td>";
                echo "<td>".$row["NombreInsEdu"]."</td>";
                echo "<td>".$row["FechaRegistro"]."</td></tr>";
             }
             } else {
                 echo "0 results";
                 }
                 $conn->close();
           ?>
        </tbody>
     </table>