Javascript 使用PHP和AJAX删除JSON文件中的数组
您好,我正在看如何根据ID值删除json文件中的数组 这是我的json文件Javascript 使用PHP和AJAX删除JSON文件中的数组,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,您好,我正在看如何根据ID值删除json文件中的数组 这是我的json文件 [ { date: "3/7/2017", title: "kjjnkjnjn", category: "Automobile", ville: "Labas", decription: "nlknlknklnkjlnkl", mail: "mathieufrobert@yahoo.fr", telep
[
{
date: "3/7/2017",
title: "kjjnkjnjn",
category: "Automobile",
ville: "Labas",
decription: "nlknlknklnkjlnkl",
mail: "mathieufrobert@yahoo.fr",
telephone: "0777878988",
pseudo: "kknklnkln",
prix: "10",
mdp: "0000",
id: "5959785fde3bc26610"
},
{
date: "3/7/2017",
title: "kjjnkjnjn",
category: "Automobile",
ville: "Labas",
decription: "nlknlknklnkjlnkl",
mail: "mathieufrobert@yahoo.fr",
telephone: "0777878988",
pseudo: "kknklnkln",
prix: "10",
mdp: "0000",
id: "6848675fde3bc26610"
},{
date: "3/7/2017",
title: "kjjnkjnjn",
category: "Automobile",
ville: "Labas",
decription: "nlknlknklnkjlnkl",
mail: "mathieufrobert@yahoo.fr",
telephone: "0777878988",
pseudo: "kknklnkln",
prix: "10",
mdp: "0000",
id: "5737554fde3bc26610"
}
]
这是我的php文件(它是另一个php的副本)
这就是我想要的json文件的样子
[
{
date: "3/7/2017",
title: "kjjnkjnjn",
category: "Automobile",
ville: "Labas",
decription: "nlknlknklnkjlnkl",
mail: "mathieufrobert@yahoo.fr",
telephone: "0777878988",
pseudo: "kknklnkln",
prix: "10",
mdp: "0000",
id: "6848675fde3bc26610"
},{
date: "3/7/2017",
title: "kjjnkjnjn",
category: "Automobile",
ville: "Labas",
decription: "nlknlknklnkjlnkl",
mail: "mathieufrobert@yahoo.fr",
telephone: "0777878988",
pseudo: "kknklnkln",
prix: "10",
mdp: "0000",
id: "5737554fde3bc26610"
}
]
提前感谢您的帮助。我建议您使用ES6 Array.prototype.filter
const deletePropWithId = (array, id) => {
return array.filter((obj) => obj.id[id] !== undefined);
}
首先,您将阅读PHP中的JSON,如下所示:
<?php
$id = $_POST['id'];
// stop if it's non-numeric
if (!preg_match('/^\d+$/', $id)) {
die('Don’t hack us.');
}
$file = 'the.json';
$data = file_get_contents($file);
$list = json_decode($data);
// now, we will search the ID
for ($i = 0; $i < count($list); $i++) {
// if we found it,
if ($list[$i]->id === $id) {
// we remove it
unset($list[$i]);
break;
}
}
// make the numeric array consecutive again
$list = array_values($list);
// write the resulting JSON to disk
$fp = fopen($file, 'w');
fwrite($fp, json_encode($list));
fclose($fp);
代码的哪一部分需要帮助?php部分或javascript?javascript和php因为它不起作用,我可能遗漏了一些东西。如果文件中的json是完全相同的,我会说第一步是将其格式化为正确的json格式。日期、头衔。邮件应该用双引号包装。您可以在此处检查json的验证您的json文件无效json您能更准确地说明这段代码应该放在哪里吗?谢谢这对我有用=)删除另一个数组时,我如何删除它前面的计数?谢谢你的意思是什么?我的文件是这样的:[{“日期”:“2017,07,01”,“标题”:“zeezerzrez”},{“日期”:“2017,07,03”,“标题”:“zeezerzrez”}]但是在我使用代码后,我的文件看起来是这样的:[1:{“日期”:“2017,07,01”,“标题”:“zeezerzrez”},2:{“日期”:“2017,07,03”,“标题”:“zeezerzrez”}]前面有一个数字,我不能在ajax中使用foreach代码,我已经修改了我的代码来解决这个问题。请参见注释为//使数字数组再次连续的行。原因记录在此处:
const deletePropWithId = (array, id) => {
return array.filter((obj) => obj.id[id] !== undefined);
}
<?php
$id = $_POST['id'];
// stop if it's non-numeric
if (!preg_match('/^\d+$/', $id)) {
die('Don’t hack us.');
}
$file = 'the.json';
$data = file_get_contents($file);
$list = json_decode($data);
// now, we will search the ID
for ($i = 0; $i < count($list); $i++) {
// if we found it,
if ($list[$i]->id === $id) {
// we remove it
unset($list[$i]);
break;
}
}
// make the numeric array consecutive again
$list = array_values($list);
// write the resulting JSON to disk
$fp = fopen($file, 'w');
fwrite($fp, json_encode($list));
fclose($fp);