Reputation: 6544
JSON
{
"pages":{
"index.php":{
"status":"enabled",
"theme":"dark",
"identifier":"KMS"
},
"google.php":{
"status":"enabled",
"theme":"dark",
"identifier":"KMS"
},
"doodle.php":{
"status":"disabled",
"theme":"light",
"identifier":"transact"
}
}
}
In my PHP code I write
$jsona = file_get_contents("../pages.json");
$jsonb = json_decode($jsona,true);
$data = $jsonb['pages'];
Now if I want to delete the property "index.php"
I write unset($data["index.php"]
and then I write
file_put_contents("../pages.json",json_encode($data));
Though after going to my JSON file it deletes "pages"
actual outcome
{"google.php":{"status":"enabled","theme":"dark","identifier":"KMS"},"doodle.php":{"status":"disabled","theme":"light","identifier":"transact"}}
I need to just unset a specific child property of pages. Such as "google.php"
or "doodle.php"
. I checked what is being posted as $data[$page]
and it is the specific element. So why is it unsetting pages
and leaving the rest of the properties?
Upvotes: 0
Views: 64
Reputation: 239270
Don't set $data
to $jsonb['pages']
. That's specifically setting your $data
variable to a sub-section of your overall object.
Just use unset($jsonb['pages']['index.php'])
.
Upvotes: 2