Ich habe ein JSON-Objekt welches ich in einer php-Variable ablege bzw einlese:
JSON:
Und hier der Code mit dem ich das Objekt einlese:
Nun gebe ich einer Funktion, den ItemType und die ItemID mit um die jeweiligen Objekte zu löschen, das klappt auch prima, ich bin mir aber sicher, dass das noch besser geht:
Das geht doch sicherlich auch irgendwie rekursiv, habt Ihr da eine Idee?
mit besten Grüßen und ein schönes WE wünschend
Balli
JSON:
Code:
[{ "id": "581e1ec745e92", "title": "Terra1", "description": "Terra1", "sensoren": [{ "id": "581e24c3aa26c", "title": "Sensor1", "nummer": "3", "temp": "", "humidity": "", "time": "" }], "geraete": [{ "id": "581e24dc33412", "title": "Beispiel", "type": "Heizlampe", "device": "3", "number": "1", "status": false, "schaltung": [{ "id": "581e24f72d300", "on": "11\/05\/2016 07:29:00 PM", "off": "dasdsad" }, { "id": "581e25069e04a", "on": "11\/05\/2016 07:29:18 PM", "off": "dasda" }] }] }, { "id": "581e1f9539d50", "title": "Terra2", "description": "Terra2", "sensoren": [{ "id": "581e24cd41e48", "title": "Sensor2", "nummer": "2", "temp": "", "humidity": "", "time": "" }], "geraete": [{ "id": "581e24ea4fa84", "title": "Geraet4", "type": "Heizlampe", "device": "1", "number": "3", "status": false, "schaltung": [{ "id": "581e24fb9d817", "on": "11\/05\/2016 07:29:00 PM", "off": "" }] }] }]
PHP-Code:
function loadJSON()
{
$jsonfile = file_get_contents('../json/terra.json');
$GLOBALS['json'] = json_decode($jsonfile, true); // decode the JSON into an associative array
}
PHP-Code:
function deleteItem($id)
{
switch ($_POST['itemType'])
{
case 'terrarium':
foreach ($GLOBALS['json'] as $key => $item)
{
if ($item['id'] === $_POST['id'])
{
unset($GLOBALS['json'][$key]);
break;
}
}
case 'sensor':
foreach ($GLOBALS['json'] as $key => $terra)
{
foreach ($terra['sensoren'] as $skey => $sensor)
{
if($sensor['id'] === $_POST['id'])
{
unset($GLOBALS['json'][$key]['sensoren'][$skey]);
break;
}
}
}
case 'geraet':
foreach ($GLOBALS['json'] as $key => $terra)
{
foreach ($terra['geraete'] as $gkey => $geraet)
{
if($geraet['id'] === $_POST['id'])
{
unset($GLOBALS['json'][$key]['geraete'][$gkey]);
break;
}
}
}
case 'zeit':
foreach ($GLOBALS['json'] as $tkey => $terra)
{
foreach ($terra['geraete'] as $gkey => $geraet)
{
foreach ($geraet['schaltung'] as $skey => $schaltung)
{
if($schaltung['id'] === $_POST['id'])
{
unset($GLOBALS['json'][$tkey]['geraete'][$gkey]['schaltung'][$skey]);
break;
}
}
}
}
}
}
mit besten Grüßen und ein schönes WE wünschend
Balli
Kommentar