Полностью удалить объект JSON из массива JSON

Если я отключу некоторые объекты в массиве 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}
    ]
  }
}
unset($data['server'][$Server][$ID])… !?
deceze 18.09.2018 16:19

что такое $Server и $ID?

Jeff 18.09.2018 16:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вместо этого:

// 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-файл -> см. Отредактированный вопрос

danielx78 18.09.2018 16:42

Мне пришлось добавить новые данные в новый массив, а затем перекодировать этот массив: $ 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";

danielx78 20.09.2018 14:33

Рад, что ты туда попал! Хорошего дня :-)

delboy1978uk 20.09.2018 14:40

Другие вопросы по теме