Как мне получить эти данные JSON в таблицу HTML, используя PHP

#php #json

#php #json

Вопрос:

Я уже знаю, как подключиться к базе данных и все такое. Мне просто нужно знать, какой цикл PHP мне нужен, чтобы правильно получить эти данные

Вот пример JSON:

 [equipment] => Array
    (
        [0] => Array
            (
                [id] => 401582887101
                [name] => Driver Seat
                [equipmentType] => OTHER
                [availability] => STANDARD
                [attributes] => Array
                    (
                        [0] => Array
                            (
                                [name] => Number Of Driver Seat Manual Adjustments
                                [value] => 6
                            )

                        [1] => Array
                            (
                                [name] => Height Adjustable Driver Seat
                                [value] => height adjustable
                            )

                    )

            )
 

И вот как я хочу, чтобы таблица выглядела:

 id  name    equipmentType   availibility    attribute name  attribute value
 

401582887101 Сиденье водителя ДРУГОЕ СТАНДАРТНОЕ Количество ручных регулировок сиденья водителя 6
401582887101 Сиденье водителя ДРУГОЕ СТАНДАРТНОЕ Регулируемая высота Сиденье водителя регулируется по высоте

Комментарии:

1. ваш «образец JSON» не является json — даже близко.

2. это действительно так важно? Я изложил это таким образом, чтобы вы могли легко увидеть, как структурированы данные.

3. ну, если вы спрашиваете конкретно о проблеме с JSON-данными, то я полагаю, что это важно, иначе вы бы не упомянули об этом. кроме того, всегда полезно быть точным, особенно в кодировании, но также и везде. или вы бы доверчиво съели салат, принесенный вам официантом с объявлением «вот ваш молочный коктейль, сэр»? кроме того, на ваш вопрос: подойдет практически любой цикл, но a foreach должно быть проще всего.. что вы пробовали до сих пор?

Ответ №1:

Это немного уродливый код, но он будет работать в вашем случае, пока структура данных массива остается неизменной:

 echo '<table border="1">';
echo '<thead><th>id</th><th>name</th><th>equipmentType</th><th>availibility</th><th>attribute name</th><th>attribute value</th></thead>';
foreach ($data['equipment'] as $equipment) {
    $row = '<tr>';
    foreach($equipment as $key => $item) {
        if(is_array($item)) {
            foreach ($item as $attribute) {
                $attributeStr = '';
                $attributeStr .= '<td>'.$attribute['name'].'</td>';
                $attributeStr .= '<td>'.$attribute['value'].'</td>';
                echo $row.$attributeStr.'</tr>';
            }
        }
        else {
            $row .= '<td>'.$item.'</td>';
        }
    }
}
echo '</table>';