我的任务是将数据添加到数组中,这是从解码JSON文件中获得的。我非常喜欢php,尤其是php + JSON数据。我能够将数据添加到JSON文件中,但是在错误的位置,并且通过预先添加这些数据,它会修改为{"0":{my prependet data}...}
。我不想拥有" 0",我想拥有如下代码中的结构。
php代码:
$current_data = file_get_contents('reports.json');
$array_data = json_decode($current_data, true);
$extra_data = array(
'name' => $_POST["name"],
'date' => $_POST["date"],
'message' => $_POST["message"]
);
array_unshift($array_data[0], $extra_data);
$final_data = json_encode($array_data);
file_put_contents( 'reports.json', $final_data );
JSON文件具有以下结构:
{
"reports": [
{
"name": "Alex",
"date": "30.09.2017",
"message": "some words 1"
},
{
"name": "Polly",
"date": "27.09.2017",
"message": "some words 2"
}
]
}
我现在在JSON中得到的是:
{"0":{"name":"Name from $extra_data",
"date": "Date from $extra_data",
"message":"some words from $extra_data"},
"reports": [
{
"name": "Alex",
"date": "30.09.2017",
"message": "some words 1"
},
{
"name": "Polly",
"date": "27.09.2017",
"message": "some words 2"
}
]
}
我想得到的是:
{
"reports": [
{
"name": "Name from $extra_data",
"date": "Date from $extra_data",
"message": "some words from $extra_data"
},
{
"name": "Alex",
"date": "30.09.2017",
"message": "some words 1"
},
{
"name": "Polly",
"date": "27.09.2017",
"message": "some words 2"
}
]
}
答案 0 :(得分:1)
您实际上是在0处创建索引并将其粘贴在那里。由于您的数组不使用索引,因为它是一个关联数组,您需要做的就是更改以下行
epoll
到此
array_unshift($array_data[0], $extra_data);
这样可以确保它将数据粘贴在数组的“报告”部分。
答案 1 :(得分:0)
您不会移动到json对象,而不是报告数组。 像这样:
$ current_data = file_get_contents(' reports.json');
$ array_data = json_decode($ current_data,true);
$current_data = file_get_contents('reports.json');
$array_data = json_decode($current_data, true);
$extra_data = array(
'name' => $_POST["name"],
'date' => $_POST["date"],
'message' => $_POST["message"]
);
$reports = $array_data['reports'];
array_unshift($reports, $extra_data);
$final_data = json_encode($reports);
var_dump($final_data);