如何在PHP中使用数组创建json文件

时间:2013-11-06 06:33:52

标签: php json

我有以下php脚本,其中我尝试编写一个包含数组内容的JSON文件:

$name = "TEST";
$type = "TEST";
$price = "TEST";

$upload_info = array();
$upload_info = array('name'=>$name,'type'=>$type,'price'=>$price);
$temp_array = json_decode(file_get_contents('upload.json'));
array_push($temp_array, $upload_info);
file_put_contents('items.json', json_encode($temp_array));
$json = json_encode($upload_info);
$file = "items.json";
file_put_contents($file, $json);

这会将以下行添加到items.json:

{"name":"TEST","type":"TEST","price":"TEST"}

它也会出现此错误:

PHP Warning:  array_push() expects parameter 1 to be array, null given in /var/www/html/list/add.php on line 13

我理想的做法是让我的脚本添加到json文件的特定部分,如下所示:

{
"GC": [
{ "Name":"Thing" , "Price":"??" , "Link":"www.google.com" },
{ "Name":"Thing" , "Price":"??" , "Link":"www.google.com" }
]
"0": [

]
"10": [

]
"20": [

]
"30": [

]
"40": [

]
"50": [

]
"60": [

]
"70": [

]
"80": [

]
"90": [

]
"100": [

]
"200": [

]
"300": [

]
"400": [

]
"500": [

]
}

这些数组中的每一个在添加add.php后都会保存项目(类似于GC数组)。这可能吗?如果是这样,我该怎么做?

是否可以选择我想要添加条目的json的特定部分?有更简单的方法吗?我只是在寻找一种不使用数据库来存储数据的解决方案。

1 个答案:

答案 0 :(得分:1)

您需要使用json_decode()的第二个参数true来获取数组结果,例如:

$temp_array = json_decode(file_get_contents('upload.json'), true);
//get the needed values from $temp_array
//create a new array out of it
file_put_contents('items.json', json_encode($your_final_array));