Как создать массив в PHP и JSON кодировать? - PullRequest
0 голосов
/ 04 мая 2019

Я хочу создать JSON-формат массива с использованием PHP, но мой результат - только самые последние данные, и он заменяется.

Как мне показать все дни?

Код:

for($i=1;$i<5;$i++) { 
  $ar -> date = date("j F y",strtotime("+".$i." days"));
  $ar -> id = $i;
}

echo json_encode($ar);

Текущий результат:

{"date":"8 May 19","id":4}

Ответы [ 3 ]

2 голосов
/ 04 мая 2019

Вы можете создать массив с именем произвольного поля

      <?php

      $AR = array();
      for($i=1;$i<5;$i++) {
        $a=array();
        $a['id']=$i;
        $a['date'] = date("j F y",strtotime("+".$i." days"));
        $AR[]=$a;
      }
      echo json_encode($AR); ?>

вывод:

      [{"id":1,"date":"5 May 19"},{"id":2,"date":"6 May 19"},{"id":3,"date":"7 May 19"},{"id":4,"date":"8 May 19"}]
2 голосов
/ 04 мая 2019

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

$ar = array();
for($i=1;$i<5;$i++) { 
  $ar[] = array('date' => date("j F y",strtotime("+".$i." days")), 'id' => $i);
}
echo json_encode($ar);

Вывод:

[
 {"date":"5 May 19","id":1},
 {"date":"6 May 19","id":2},
 {"date":"7 May 19","id":3},
 {"date":"8 May 19","id":4}
]

Демо на 3v4l.org

1 голос
/ 04 мая 2019

Вы также можете использовать array_push:

$ar = array();
for ($i = 1; $i < 5; $i++) {
    array_push($ar, ["id" => $i, "date" => date("j F y", strtotime("+" . $i . " days"))]);
}

$ar = json_encode($ar);
var_dump($ar);

Вывод

string (109) "[{" id ": 1," date ":" 519 мая "}, {" id ": 2," date ":" 6 мая 19 "}, {" id ": 3," date ":" 7 мая 19 "}, {" id ": 4," date":" 8 мая 19 "}]"

...