Мне нужна помощь, я пытаюсь создать динамическую таблицу HTML, которая отобразит некоторые результаты из вложенного массива.Создать таблицу HTML из вложенного массива PHP
Мой массив всегда будет настроить так:
Array
(
[column_label] => Size No.
[column_data] => Array
(
[0] => Array
(
[column_cell] => #3
)
[1] => Array
(
[column_cell] => #3.5
)
[2] => Array
(
[column_cell] => #4
)
[3] => Array
(
[column_cell] => #4.5
)
)
)
Array
(
[column_label] => Approx. Diameter Inches
[column_data] => Array
(
[0] => Array
(
[column_cell] => 3/32"
)
[1] => Array
(
[column_cell] => 7/64"
)
[2] => Array
(
[column_cell] => 1/8"
)
[3] => Array
(
[column_cell] => 9/64"
)
)
)
Array
(
[column_label] => Approx. Diameter mm
[column_data] => Array
(
[0] => Array
(
[column_cell] => 2.38
)
[1] => Array
(
[column_cell] => 2.78
)
[2] => Array
(
[column_cell] => 3.18
)
[3] => Array
(
[column_cell] => 3.57
)
)
)
Array
(
[column_label] => Catalog No.
[column_data] => Array
(
[0] => Array
(
[column_cell] => 32030
)
[1] => Array
(
[column_cell] => 32035
)
[2] => Array
(
[column_cell] => 32040
)
[3] => Array
(
[column_cell] => 32045
)
)
)
мне нужно пройти через каждый [column_data]
массив и подготовить их для отображения в ячейках таблицы в моей таблице.
Например, строка в моей таблице должна содержать ячейки таблицы из массива column_data с ключом 0. Следующая строка в моей таблице будет включать ячейки таблицы из массива column_data с ключом из 1 и так далее.
Надеюсь, это имеет смысл. Таким образом, я уверен, что ячейки всегда будут соответствовать заголовку столбца Column_label и отображаться вертикально в ячейках.
Вот моя неудачная попытка (незавершенный):
<?php if ($product_table) {
//Setup empty arrays
$products = array();
$labels = array();
$data = array();
$column_cells = array();
foreach($product_table as $product) {
//echo '<pre>';
//print_r($product);
//echo '</pre>';
//echo '<th>' . $product['column_label'] . '</th>';
$products[] = $product;
$labels[] = $product['column_label'];
$data[] = $product['column_data'];
foreach ($product['column_data'] as $column_data) {
$column_cells[] = $column_data;
}
}
?>
<table class="table">
<tr>
<?php foreach($labels as $label) {
echo '<th>' . $label . '</th>';
} ?>
</tr>
<?php foreach($products as $product) { ?>
<tr>
<?php
echo '<pre>';
print_r($product);
echo '</pre>';
?>
</tr>
<?php } ?>
</table>
<?php } ?>
У вас есть контроль над настройкой начального массива? Просто любопытно, потому что, если он организован столбцами данных, а не строками в связанном массиве, это немного сложнее, чем нужно, и гораздо труднее читать. –
Не совсем, если я печатаю переменную продуктов вместо продукта, то каждый продукт пронумерован, не уверен, что это помогает. В двух словах я просто column_label должен быть заголовком таблицы, а информация в столбце_данных должна отображаться вертикально под соответствующим заголовком таблицы. Я думал об использовании array_merge или использовании цикла for и подсчета. Все еще не уверен и потратил слишком много времени, пытаясь понять это. – Derek