Nickname-no
@Nickname-no

Как конвертация json в html?

Как преобразовать (Выровнять) данные json в html
Есть файл json в котором дохера строк как преобразовать (распределить) эти строки как нужно
Пример

Код json
{
  "meta": {
    "p": 273876598,
    "a": 370637443,
    "t": "Сообшение 1",
    "d": 1485679498
  },
  "data": [
    {
      "i": 56645,
      "f": 370637443,
      "t": "Сообшение 2",
      "d": 346934331
    },
    {
      "i": 56644,
      "f": 370637443,
      "t": "Сообшение 3",
      "d": 346934327
    }
}


Должно получится

1. Сообшение 1
19.01.17 12:23

2. Сообшение 4
19.01.17 12:27

3. Сообшение 3
19.01.17 12:26
  • Вопрос задан
  • 496 просмотров
Решения вопроса 1
@Catrinblaidd
Ваш json не очень-то понятен. Не ясно, откуда берётся дата вложенных сообщений. Но то, что вам нужно, делается примерно так:
\date_default_timezone_set('Europe/Moscow');
$json = '{
  "meta": {
    "p": 273876598,
    "a": 370637443,
    "t": "Сообшение 1",
    "d": 1485679498
  },
  "data": [
    {
      "i": 56645,
      "f": 370637443,
      "t": "Сообшение 2",
      "d": 346934331
    },
    {
      "i": 56644,
      "f": 370637443,
      "t": "Сообшение 3",
      "d": 346934327
    }
  ]
}';
$arr = \json_decode($json, true);
$html = '';
foreach ($arr as $key => $val) {
  if (isset($val['t']) && isset($val['d'])) {
    $date = \date('d.m.y H:i', $val['d']);
    $html .= "<p>{$val['t']}<br>$date</p>";
  } else {
    foreach ($val as $key2 => $val2) {
      if (isset($val2['t']) && isset($val2['d'])) {
        $date = \date('d.m.y H:i', $val2['t']);
        $html .= "<p>{$val2['t']}<br>$date</p>";
      }
    }
  }
}
echo $html;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы