многомерный массив в таблицу HTML - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь выполнить преобразование многомерного массива 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...