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

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

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

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

 < ?php if (count($shop) > 0): ?>  < ?php foreach ($shop as $row): array_map('htmlentities', $row); ?>  < ?php endforeach; ?> 
< ?php echo implode('', array_keys(current($shop))); ?>
< ?php echo implode('', $row); ?>
< ?php endif; ?>

Вот мой:

 < ?php function build_table($array){ // start table $html = ''; // header row $html .= ''; foreach($array[0] as $key=>$value){ $html .= ''; } $html .= ''; // data rows foreach( $array as $key=>$value){ $html .= ''; foreach($value as $key2=>$value2){ $html .= ''; } $html .= ''; } // finish table and return it $html .= ''; 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); ?>
  
' . htmlspecialchars($key) . '
' . htmlspecialchars($value2) . '
< ? foreach ($shop as $row) : ?> < ? endforeach; ?>
title price number
< ? echo $row[0]; ?> < ? echo $row[1]; ?> < ? echo $row[2]; ?>
 echo ""; foreach($shop as $v){ echo ""; foreach($v as $vv){ echo ""; } echo ""; } echo "
TitlePriceNumber
{$vv}
";

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

пример:

 $tbody = array_reduce($rows, function($a, $b){return $a.="".implode("",$b)."";}); $thead = "" . implode("", array_keys($rows[0])) . ""; echo "\n$thead\n$tbody\n
";

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

 echo ''; foreach($shop as $id => $item) { echo ''; } echo '
TitlePriceNumber
'.$item[0].''.$item[1].''.$item[2].'
';
   < ?php foreach ($shop as $row) { echo ''; foreach ($row as $item) { echo ""; } echo ''; } ?> 
titleprice>number
{$item}

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

 function insertTable($myTableArrayBody) { $x = 0; $y = 0; $seTableStr = ''; while (isset($myTableArrayBody[$y][$x])) { $seTableStr .= ''; while (isset($myTableArrayBody[$y][$x])) { $seTableStr .= ''; $x++; } $seTableStr .= ''; $x = 0; $y++; } $seTableStr .= '
' . $myTableArrayBody[$y][$x] . '
'; return $seTableStr; }

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

CSS:

 table { font-family: arial, sans-serif; border-collapse: collapse; width: 100%; } td, th { border: 1px solid #dddddd; text-align: left; padding: 8px;`` } 
 < ?php echo ""; for ($i=0; $i'; for ($j=0; $j<3; $j++) { echo ''; } echo ''; } echo '';

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

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

 function array2Html($array, $table = true) { $out = ''; foreach ($array as $key => $value) { if (is_array($value)) { if (!isset($tableHeader)) { $tableHeader = '
'; } array_keys($value); $out .= ''; $out .= array2Html($value, false); $out .= ''; } else { $out .= ""; } } if ($table) { return '
title price number
'.$shop[$i][$j].' ' . implode('', array_keys($value)) . '
$value
' . $tableHeader . $out . '
'; } 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); 

Надеюсь, поможет 😉

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

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

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

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

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

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

 $result = $obj->process_table(); 

Если вы хотите преобразовать массив в 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'); 

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

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

 echo ''; echo ''; foreach ($shop as $item) { echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
titlepricenumber
'.$item[0].''.$item[1].''.$item[2].'
';
  < ?php if ($result->num_rows > 0) {// output data of each row while($row = $result->fetch_assoc()) { echo ""; echo ""; echo ""; echo ""; echo ""; } } else { echo "0 results"; } $conn->close(); ?> 
Nombre Apellido Email Institución educativa Fecha Registro
".$row["Nombre"]."".$row["Apellido"]."".$row["Email"]."".$row["NombreInsEdu"]."".$row["FechaRegistro"]."
- < ?php if ($result->num_rows > 0) {// output data of each row while($row = $result->fetch_assoc()) { echo ""; echo ""; echo ""; echo ""; echo ""; } } else { echo "0 results"; } $conn->close(); ?>
Nombre Apellido Email Institución educativa Fecha Registro
".$row["Nombre"]."".$row["Apellido"]."".$row["Email"]."".$row["NombreInsEdu"]."".$row["FechaRegistro"]."