Преобразование массива php в html

208
10 апреля 2018, 02:17

Есть массив

        Array(
[PriceModels] => Array
    (
        [0] => Array
            (
                [ArticleId] => 221802282
                [ArticleCode] => GD0
                [TradeMarkId] => 8233
                [TradeMarkName] => Dss
                [Description] => D12a
                [ArticlePriceInfo] => Array
                    (
                        [0] => Array
                            (
                                [Price] => 2501.66
                                [Qty] => 15
                                [DeliveryTerm] => 0
                                [Multiplicity] => 1
                            )
                        [1] => Array
                            (
                                [Price] => 2501.66
                                [Qty] => 9
                                [DeliveryTerm] => 3
                                [Multiplicity] => 1
                            )
                        [2] => Array
                            (
                                [Price] => 2645.32
                                [Qty] => 6
                                [DeliveryTerm] => 4
                                [Multiplicity] => 1
                            )

         …

Пытаюсь преобразовать массив в html. Пробовал два разных варианта:

    <table><?php foreach($json_string as $val) : ?>
    <tr>
    <td class="item"><?php echo $val->ArticleId; ?></td>
    <td class="item"><?php echo $val->ArticleCode; ?></td>
    <td class="item"><?php echo $val->TradeMarkId; ?></td>
    <td class="item"><?php echo $val->TradeMarkId; ?></td>
    <td class="item"><?php echo $val->Price; ?></td>
    <td class="item"><?php echo $val->Qty; ?></td>
    <td class="item"><?php echo $val->DeliveryTerm; ?></td>
    <td class="item"><?php echo $val->Multiplicity; ?></td>
    </tr>
    <?php endforeach; ?>
    </table>

и

<?php
function htmlTree($json_string) {
    $treeHtml = '<ul>';
    foreach ($json_string as $val) {
        $treeHtml .= '<li>'.$val['ArticleId'];
        if (!empty($val['ArticlePriceInfo'])) {
            $treeHtml .= htmlTree($val['ArticlePriceInfo']);
        }
        $treeHtml .= '</li>';
    }
    $treeHtml .= '</ul>';
    return $treeHtml;
}
?>

Соответственно результат "ничего". Как правильно преобразовать многомерный массив в html и вывести все в виде таблицы.

Answer 1

Судя по названию переменной, у вас приходит в функцию json. Для начала, его нужно распарсить.

function htmlTree($json_string) {
    let priceData = JSON.parse($json_string);
    $treeHtml = '<ul>';
    foreach (priceData as $val) {
        $treeHtml .= '<li>'.$val['ArticleId'];
        if (!empty($val['ArticlePriceInfo'])) {
            $treeHtml .= htmlTree($val['ArticlePriceInfo']);
        }
        $treeHtml .= '</li>';
    }
    $treeHtml .= '</ul>';
    return $treeHtml;
}
READ ALSO
Плагин mmenu для Jquery

Плагин mmenu для Jquery

Подключил плагин mmenuПри нажатии на гамбургер, меню отодвигает бекграунд

243
SVG: border outline для группы элементов

SVG: border outline для группы элементов

Я хотел бы добавить границу для элементов, которые сгруппированыВ качестве примера:

203
Сделать яйцо на Пасху на HTML

Сделать яйцо на Пасху на HTML

Задача – сделать пасхальное яйцо используя любые WEB технологии

236
Убрать .html во всех файлах статичного сайта

Убрать .html во всех файлах статичного сайта

Как убрать расширениеhtml в адресной строке браузера

239