Если я отключу некоторые объекты в массиве JSON через PHP, я получу неопределенное поле с двумя пустыми []. Но я хочу удалить весь объект без [].
Это код, который я использую:
// Unset Data Object from JSON-File
unset($data['server'][$Server][$ID]['id']);
unset($data['server'][$Server][$ID]['svc']);
JSON-файл перед "unset":
{
"server": {
"SERVER-01": [
{"svc":"SVC1", "id":1},
{"svc":"SVC2", "id":2},
{"svc":"SVC3", "id":3},
{"svc":"SVC4", "id":4},
{"svc":"SVC5", "id":5}
],
"SERVER-02": [
{"svc":"SVC1", "id":1},
{"svc":"SVC2", "id":2},
{"svc":"SVC3", "id":3},
{"svc":"SVC4", "id":4},
{"svc":"SVC5", "id":5}
]
}
}
JSON-файл после "unset":
{
"server": {
"SERVER-01": [
[],
{"svc":"SVC2", "id":2},
{"svc":"SVC3", "id":3},
{"svc":"SVC4", "id":4},
{"svc":"SVC5", "id":5}
],
"SERVER-02": [
{"svc":"SVC1", "id":1},
{"svc":"SVC2", "id":2},
[],
{"svc":"SVC4", "id":4},
{"svc":"SVC5", "id":5}
]
}
}
Обновлено: Следующий вывод я получаю без установки ($ data ['server'] [$ Server] [$ ID]:
{
"server": {
"SERVER-01": {
"1": {"svc":"SVC2", "id":2},
"2": {"svc":"SVC3", "id":3},
"3": {"svc":"SVC4", "id":4},
"4": {"svc":"SVC5", "id":5}
},
"SERVER-02": [
{"svc":"SVC1", "id":1},
{"svc":"SVC2", "id":2},
{"svc":"SVC3", "id":3},
{"svc":"SVC4", "id":4},
{"svc":"SVC5", "id":5}
]
}
}
что такое $Server и $ID?






Вместо этого:
// Unset Data Object from JSON-File
unset($data['server'][$Server][$ID]['id']);
unset($data['server'][$Server][$ID]['svc']);
Просто остановитесь на идентификаторе, например:
// Unset Data Object from JSON-File
unset($data['server'][$Server][$ID];
Теперь, когда вы json_encode свой массив, вы увидите, что он полностью исчез :-)
Если я сделаю это, то получу совершенно другой JSON-файл -> см. Отредактированный вопрос
Мне пришлось добавить новые данные в новый массив, а затем перекодировать этот массив: $ var = array (); foreach ($ data ['server'] [$ Server] as $ key => $ item) {$ var ['server'] [$ Server] [] = $ item; } echo json_encode ($ var, JSON_PRETTY_PRINT | JSON_NUMERIC_CHECK), "\ n \ n \ n";
Рад, что ты туда попал! Хорошего дня :-)
unset($data['server'][$Server][$ID])… !?