Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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追加数据_Php_Json - Fatal编程技术网

从PHP向Json追加数据

从PHP向Json追加数据,php,json,Php,Json,我想在obdatabase.json中追加{“pname”:“superman”,“pid”:“4”}。但是我下面的尝试完全覆盖了json文件。 我如何修改它 obdatabase.json { "pobject":[{ "pname":"Pikachu" , "pid":"1" }, { "pname":"squirtle" , "pid":"2" }, { "pname":"Justinbieber" , "pid":"3" }]} add.php <?php $file="obd

我想在obdatabase.json中追加
{“pname”:“superman”,“pid”:“4”}
。但是我下面的尝试完全覆盖了json文件。 我如何修改它

obdatabase.json

{ "pobject":[{ "pname":"Pikachu" , "pid":"1" },
{ "pname":"squirtle" , "pid":"2" },
{ "pname":"Justinbieber" , "pid":"3" }]}
add.php

<?php

$file="obdatabase.json";
$json = json_decode(file_get_contents($file),TRUE);

$json['pobject'] = array('pname'=>'Superman', 'pid'=>4);

file_put_contents('obdatabase.json', json_encode($json));

?>


想法是从文件中获取json,然后将其解析为php json_encode()

想法是从文件中获取json,然后将其解析为php json_encode()

在代码中,您写道:

$json['pobject'] = array('pname'=>'Superman', 'pid'=>4);
通过这种方式,替换
$json['pobject']
数组,而不是添加值

您必须使用以下语法:

$json['pobject'][] = array('pname'=>'Superman', 'pid'=>4);
然后,您可以使用以下内容覆盖旧文本文件:

file_put_contents( 'obdatabase.json', json_encode( $json ) );
编辑: 你已经问了这个问题。处理堆栈溢出的正确方法是:

  • 如果您不理解答案或答案与您的问题不匹配,请继续在前面的问题中进行讨论
  • 如果问题已结束,请将答案标记为正确,然后提出新问题

这是出于对那些花时间寻找解决方案的用户的尊重,也是出于对未来访问者的尊重,这些访问者可以轻松理解问题是否有有效答案。

在您的代码中,您写道:

$json['pobject'] = array('pname'=>'Superman', 'pid'=>4);
通过这种方式,替换
$json['pobject']
数组,而不是添加值

您必须使用以下语法:

$json['pobject'][] = array('pname'=>'Superman', 'pid'=>4);
然后,您可以使用以下内容覆盖旧文本文件:

file_put_contents( 'obdatabase.json', json_encode( $json ) );
编辑: 你已经问了这个问题。处理堆栈溢出的正确方法是:

  • 如果您不理解答案或答案与您的问题不匹配,请继续在前面的问题中进行讨论
  • 如果问题已结束,请将答案标记为正确,然后提出新问题

这是出于对那些花时间寻找解决方案的用户的尊重,也是出于对未来访问者的尊重,这些访问者可以轻松理解问题是否有有效答案。

Thx但您能否提供一些代码。我在网上找不到满意的答案。谢谢。当然,修改答案太好了:)给我一个左撇子,因为我只是想帮忙,有人把我拦了下来。我没有注意到你正在使用json,而那个家伙甚至没花2秒钟,pam就否决了我,如果我想删除一个具有唯一ID的对象,我的示例会怎么样?比如说,我想删除id(在我的示例中是pid)=3Delete整{“pname”:“Justinbieber”,“pid”:“3”}的对象,给定pid==3Thx,但是您可以包含一些代码吗。我在网上找不到满意的答案。谢谢。当然,修改答案太好了:)给我一个左撇子,因为我只是想帮忙,有人把我拦了下来。我没有注意到你正在使用json,而那个家伙甚至没花2秒钟,pam就否决了我,如果我想删除一个具有唯一ID的对象,我的示例会怎么样?比如说,我想删除id(在我的示例中是pid)=3Delete整{“pname”:“Justinbieber”,“pid”:“3”}的对象,给定pid==3