我想使用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}
答案 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}
]
答案 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“}]”