#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>';