【发布时间】:2019-04-16 22:28:05
【问题描述】:
我想使用PHP 将数据写入 json 文件中,如下例所示,但它总是在方括号(数组)之外添加数据。
如何在方括号内书写? 感谢您的帮助!
【问题讨论】:
我想使用PHP 将数据写入 json 文件中,如下例所示,但它总是在方括号(数组)之外添加数据。
如何在方括号内书写? 感谢您的帮助!
【问题讨论】:
你很亲密。修改你的代码如下:
$current_data = file_get_contents('users.json');
$array_data = json_decode($current_data, true);
$array_data["users"][] = array ( // -> this line has been changed
'name' => $_POST["name"],
'mobile' => $_POST["mobile"],
'datedon' => $_POST["datedon"]
);
$final_data = json_encode($array_data);
...
已编辑:
如果要将项目添加到数组的开头,请使用 array-unshift:
...
$array_data = json_decode($current_data, true);
$item = array (
'name' => $_POST["name"],
'mobile' => $_POST["mobile"],
'datedon' => $_POST["datedon"]
);
array_unshift($array_data["users"] , $item);
$final_data = json_encode($array_data);
...
【讨论】:
解决方案 1
从此更改您的代码:
$extra[] = array (
'name' => $_POST["name"],
'mobile' => $_POST["mobile"],
'datedon' => $_POST["datedon"]
);
$array_data[] = $extra;
所以它看起来像下面这样:
$array_data['users'][] = array (
'name' => $_POST["name"],
'mobile' => $_POST["mobile"],
'datedon' => $_POST["datedon"]
);
解决方案 2
换行
$array_data[] = $extra;
到下面:
$array_data['users'][] = $extra;
【讨论】: