使用PHP和POST请求删除JSON数据
我想要一些使用PHP从JSON文件中删除内容的PHP代码,例如: 假设我有一个JSON文件:使用PHP和POST请求删除JSON数据,php,json,Php,Json,我想要一些使用PHP从JSON文件中删除内容的PHP代码,例如: 假设我有一个JSON文件: { "aaa": [ { "title": "xx", "description": "6", }, { "title": "tt", "description": "b", } ] } 所以我希望它通过PO
{
"aaa": [
{
"title": "xx",
"description": "6",
},
{
"title": "tt",
"description": "b",
}
]
}
所以我希望它通过POST获取字符串,然后删除JSON的整个部分,其中包含通过POST给出的字符串
例如,假设我通过POST请求发送“xx”,在PHP脚本运行后,我希望JSON看起来像这样,没有被删除的JSON:
{
"aaa": [
{
"title": "tt",
"description": "b",
}
]
}
我尝试了通过搜索互联网找到的每一种方法,但我无法做任何正确的事情。提前谢谢
我知道有很多这样的问题和答案,但没有一个对我有用,所以我自己问,不需要任何人将此标记为重复,如果你知道如何做,请在这里回答,否则…你想做的是
file\u get\u contents()
和JSON\u decode()
aaa
数组,使用array\u Filter()
JSON\u encode()
和file\u put\u contents()
$file='path/to/file.json';
$data=json_解码(文件获取内容($file));
$title=trim($_POST['title']);//假设这些都已检查/验证/等等
$data->aaa=数组\值(数组\过滤器($data->aaa,函数($item)使用($title){
return(bool)strcmp($item->title,$title);//如果字符串匹配,则返回0
}));
file_put_contents($file,json_encode($data));
Demo ~我知道您有一个公认的答案,但是使用这样一个简单的json对象,您只需创建一个新对象并添加aaa数组,其中的元素与要删除的元素不匹配
<?php
$file = '/path/to/your/file';
// Delete this one
$_POST['delete'] = 'xx';
// Get file contents and decode it
$str = file_get_contents( $file );
$json = json_decode( $str );
// Create a new object
$temp = new stdClass;
// Add only the objects we want to keep
foreach( $json->aaa as $obj )
if( $obj->title != $_POST['delete'] )
$temp->aaa[] = $obj;
// Replace the file contents
file_put_contents(
$file,
json_encode( $temp )
);
请您链接到其他问题/答案,并解释它们是如何没有帮助的?这将在将来节省时间。另外,请显示您已尝试的内容。您实际上只是希望通过每个对象的title
属性筛选数组。这应该会有帮助,如果没有,请解释~@luclzzBR2252我刚刚添加了array\u值
来重新索引过滤后的数组。否则,你会得到一个带有数字键的对象,这就是我想要做的,但我不知道如何解释