Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何添加到.JSON文件中的JSON数组_Php_Json_File_Arrays - Fatal编程技术网

Php 如何添加到.JSON文件中的JSON数组

Php 如何添加到.JSON文件中的JSON数组,php,json,file,arrays,Php,Json,File,Arrays,如何使用PHP添加到.json文件?目前,我正在用PHP附加一个.json文件,但它不会将数据添加到现有的json对象中。它生成一个新对象。我需要所有数据都存储在一个对象中,在一个外部JSON文件中。基本上,我有一个JSON对象,希望向它添加更多值 $jsonFile = "test.json"; $fh = fopen($jsonFile, 'w'); $json = json_encode(array("message" => $name, &

如何使用PHP添加到.json文件?目前,我正在用PHP附加一个.json文件,但它不会将数据添加到现有的json对象中。它生成一个新对象。我需要所有数据都存储在一个对象中,在一个外部JSON文件中。基本上,我有一个JSON对象,希望向它添加更多值

$jsonFile = "test.json";
$fh = fopen($jsonFile, 'w');

$json = json_encode(array("message" => $name, "latitude" => $lat, "longitude" => $lon, "it" => $it));

fwrite($fh, $json);

您可以将json文件解码为php数组,然后插入新数据并再次保存

<?php
$file = file_get_contents('data.json');
$data = json_decode($file);
unset($file);//prevent memory leaks for large json.
//insert data here
$data[] = array('data'=>'some data');
//save the file
file_put_contents('data.json',json_encode($data));
unset($data);//release memory

您可以将json文件解码为php数组,然后插入新数据并再次保存

<?php
$file = file_get_contents('data.json');
$data = json_decode($file);
unset($file);//prevent memory leaks for large json.
//insert data here
$data[] = array('data'=>'some data');
//save the file
file_put_contents('data.json',json_encode($data));
unset($data);//release memory

以上建议的是艰难的道路。我正在考虑应该有一种更简单的方法,将数组添加到json文件中

以下是算法:

$handle=fopen($jsonFile);
fseek($handle,-1,SEEK_END);
fwrite($handle,$arrayToAdd);
fclose($handle);

但我不确定这样做是否比将整个json文件读入内存、添加数组然后将其存储更高效

上面提到的是艰难的道路。我正在考虑应该有一种更简单的方法,将数组添加到json文件中

以下是算法:

$handle=fopen($jsonFile);
fseek($handle,-1,SEEK_END);
fwrite($handle,$arrayToAdd);
fclose($handle);

但我不确定这样做是否比将整个json文件读入内存、添加数组然后将其存储更高效

我将
json\u解码它,
array\u合并它与新数组,然后再
json\u编码它。你说要检索已经存在的内容,然后合并并重新编码数组?然后,将其重新写入json文件?准确地说。我不知道您可能会使用任何可行的就地转换。只要数据被合并,我就可以。我必须说mysql函数是绝对删除的,请使用PDO或mysqli函数。我会
json\u decode
it,
array\u merge
it与新数组一起,然后再次对它进行编码。你说要检索已经存在的内容,然后合并并重新编码数组?然后,将其重新写入json文件?准确地说。我不知道您可能会使用任何可行的就地转换。只要数据被合并,我就可以。我必须说mysql函数是绝对删除的,请使用PDO或mysqli函数。是的,这样做确实大大减少了内存和CPU的浪费。然而,当数据结构改变时,你需要修改你的代码。是的,这样做确实会大大减少内存和CPU的浪费。但是,当数据结构发生更改时,您需要为此修改代码。