如何用PHP和JSON编码生成数组?

时间:2019-05-04 05:23:27

标签: php arrays json

我想使用PHP创建数组的JSON格式,但是我的结果只是最新数据,并且将其替换。

我怎么能整天显示?

代码:

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 个答案:

答案 0 :(得分:2)

您需要创建一个数组来将值存储到其中,以免在每次通过循环时都覆盖它们:

$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}
]

Demo on 3v4l.org

答案 1 :(得分:2)

您可以使用自定义字段名称创建数组

      <?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 :(得分:1)

您还可以使用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“:” 5 May 19“},{” id“:2,” date“:” 5月6日   19“},{” id“:3,” date“:” 7 May 19“},{” id“:4,” date“:” 8 May 19“}]”

相关问题