Я пытаюсь выполнить преобразование многомерного массива php в таблицу HTML.
Проблема в том, что я хотел бы организовать таблицу с rowspan
и colspan
, чтобы отразитьструктура массива.Я знаю, что это работает, но я не хотел бы использовать таблицу внутри другой таблицы.
Ниже приведен пример массива и ожидаемого результата.
Изменить:
Ниже также мой текущий результат (без rowspan
и colspan
)
Моя попытка использовать rownspan привела к полному беспорядку.Таблица полностью утратила свою структуру.
Edit2:
Ниже также мой источник и фактический результат из него.
Array
(
[0] => ID
[1] => Array
(
[test2_id] => Array
(
[0] => ID
[1] => name
[2] => data
[3] => Array
(
[test3_id] => Array
(
[0] => ID
[1] => name
[2] => info
[3] => data
)
)
[4] => info
)
)
[2] => name
[3] => Array
(
[test4_id] => Array
(
[0] => ID
[1] => name
[2] => info
[3] => data
)
)
[4] => data
[5] => info
)
Ожидаемый результат
Текущий результат
php:
echo '<table border= 1>';
$this->iterate($array, 4);
echo '</table>';
function iterate($array, $level)
{
echo '<tr>';
foreach ($array as $key=>$row)
{
if (is_array($row) )
{
echo '<th rowspan="1" colspan="'.count($row, COUNT_RECURSIVE).'">';
echo key($row);
echo '</th>';
}
else
{
echo '<th rowspan="'.$level.'" >'.$row.'</th>';
}
}
echo '</tr>';
foreach ($array as $key=>$row)
{
if (is_array($row) )
{
$this->iterate($row, $level -1);
}
}
}
Одна из проблем, с которыми я столкнулся, заключалась в том, что команда COUNT_RECURSIVE содержит ключинаряду со значениями.Я должен был бы сделать ручную итерацию, чтобы получить правильный счет (для colspan)
Ниже изображение результата:
php reult