0
Я хочу удалить запись из JSON, изменив status
на DELETE перед отправкой.удалить запись из json с помощью php
JSON:
{
Shawn Taylor: {
name: "Shawn Taylor",
title: "Director",
photo_url: "Creative-ShawnTaylor.jpg",
status: "Current"
},
Shawn Taylor 2: {
name: "Shawn Taylor 2",
title: "Photographer",
photo_url: "Creative-ShawnTaylor2.jpg",
status: "DELETE"
}
Я прочитал из JSON просто отлично:
$data_url = 'data.json';
$data_json = file_get_contents($data_url);
$data_array = json_decode($data_json, true);
//plus a bunch of _GET stuff here...
...
// then write to JSON like so
$data[$name] = array(
'name' => $name,
'title' => $title,
'photo_url' => $photo_url,
'status' => $status
);
//EDIT - this is my feeble attempt
if($status == 'DELETE'){
unset($data[$name]);
};
//END EDIT
// merge and write array to json
$data_array = array_merge($data_array, $data);
file_put_contents('data.json', json_encode($data_array, JSON_FORCE_OBJECT));
Но не могу понять, как удалить запись ...
Я не вижу попытку манипулирования $ data_array после того как вы json_decode'd данные для удаления ключей со статусом «Удалить». Вам также не нужен JSON_FORCE_OBJECT, поскольку вы вынуждаете data_array быть ассоциативным массивом в вашем декодирующем вызове. – ssnobody
ОК, я поставил свою первую лучшую попытку. даже не вдавил его, хотя ... –
Ответ Марко выглядит хорошо. Как он указывает, вам нужно пройти каждый элемент в данных (foreach), проверить, установлен ли для этого элемента значение DELETE, и если это так, удалите этот элемент из данных. – ssnobody