@Coddy_Angel
Пишу сайты

Как отфильтровать данные формата json в php файле?

Есть массив json, требуется найти все фигурные скобки в этом файле с параметром type": "offline" удалить их и вернуть назад в таком же формате.
Я так понимаю нужно использовать кодер и декодер?
пример json

[{
        "id": "00000008524",
        "title": "Комплекс из двух исследований \"МРТ головного мозга и гипофиза\" (Комплексное МРТ головного мозга с программой ранней диагностики инсультов и МР ангиография, Комплексное МРТ гипофиза)",
        "prefix": "",
        "type": "online",
        "price": 330.46,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 3600
    }, {
        "id": "00000008520",
        "title": "Комплекс из двух исследований \"МРТ головного мозга и шейного отдела позвоночника\" (Комплексное МРТ головного мозга с программой ранней диагностики инсультов и МР ангиография, Комплексное МРТ шейного отдела позвоночника и спинного мозга)",
        "prefix": "",
        "type": "online",
        "price": 332.29,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 3900
    }, {
        "id": "00000008522",
        "title": "Комплекс из двух исследований \"МРТ грудного и поясничного отделов позвоночника\" (Комплексное МРТ грудного отдела позвоночника и спинного мозга, Комплексное МРТ поясничного и крестцового отдела позвоночника и спинного мозга)",
        "prefix": "",
        "type": "online",
        "price": 253.54,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 3900
    }, {
        "id": "00000008526",
        "title": "Комплекс из двух исследований \"МРТ обоих плечевых суставов\" (Комплексное МРТ плечевого сустава, Комплексное МРТ плечевого сустава)",
        "prefix": "",
        "type": "online",
        "price": 350.22,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 4800
    }, {
        "id": "00000008523",
        "title": "Комплекс из двух исследований \"МРТ поясничного отдела позвоночника, крестца и копчика\" (Комплексное МРТ поясничного и крестцового отдела позвоночника и спинного мозга, Комплексное МРТ крестца и копчика)",
        "prefix": "",
        "type": "online",
        "price": 301.84,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 3900
    }, {
        "id": "00000008521",
        "title": "Комплекс из двух исследований \"МРТ шейного и грудного отделов позвоночника\" (Комплексное МРТ шейного отдела позвоночника и спинного мозга, Комплексное МРТ грудного отдела позвоночника и спинного мозга)",
        "prefix": "",
        "type": "online",
        "price": 268.02,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 4200
    }, {
        "id": "00000008528",
        "title": "Комплекс из двух исследований \"МРТ шейного отдела позвоночника и плечевого сустава\" (Комплексное МРТ шейного отдела позвоночника и спинного мозга, Комплексное МРТ плечевого сустава)",
        "prefix": "",
        "type": "online",
        "price": 329.32,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 4500
    }, {
        "id": "00000007924",
        "title": "комплексное МРТ гипофиза",
        "prefix": "",
        "type": "online",
        "price": 157.57,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 1800
    }, {
        "id": "00000007738",
        "title": "комплексное МРТ головного мозга с программой ранней диагностики инсультов и МР ангиография",
        "prefix": "",
        "type": "online",
        "price": 182.70,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 1800
    }, {
        "id": "00000007741",
        "title": "комплексное МРТ грудного отдела позвоночника и спинного мозга",
        "prefix": "",
        "type": "online",
        "price": 118.44,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 2100
    }, {
        "id": "00000007735",
        "title": "комплексное МРТ коленного сустава",
        "prefix": "",
        "type": "online",
        "price": 163.25,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 2100
    }, {
        "id": "00000007739",
        "title": "комплексное МРТ крестца и копчика",
        "prefix": "",
        "type": "online",
        "price": 166.74,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 2100
    }, {
        "id": "00000007737",
        "title": "комплексное МРТ крестцово-подвздошных сочленений",
        "prefix": "",
        "type": "online",
        "price": 113.94,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 2400
    }, {
        "id": "00000007730",
        "title": "комплексное МРТ лучезапястного сустава",
        "prefix": "",
        "type": "online",
        "price": 184.50,
        "currency": "BYN",
        "category_id": "00000007142",
        "no_staff": true,
        "during": 2400
    }
]

  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
irishmann
@irishmann
Научись пользоваться дебаггером
json_decode(), перебрать массив циклом, foreach, например, в другой массив, и запаковать обратно json_encode()

UPD. Накидал пример, взял твой json, сократил и добавил offline.

<?php
    $json = '[{"id":"00000008524","title":"Комплекс из двух исследований \"МРТ головного мозга и гипофиза\" (Комплексное МРТ головного мозга с программой ранней диагностики инсультов и МР ангиография, Комплексное МРТ гипофиза)","prefix":"","type":"online","price":330.46,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":3600},{"id":"00000008520","title":"Комплекс из двух исследований \"МРТ головного мозга и шейного отдела позвоночника\" (Комплексное МРТ головного мозга с программой ранней диагностики инсультов и МР ангиография, Комплексное МРТ шейного отдела позвоночника и спинного мозга)","prefix":"","type":"offline","price":332.29,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":3900},{"id":"00000008522","title":"Комплекс из двух исследований \"МРТ грудного и поясничного отделов позвоночника\" (Комплексное МРТ грудного отдела позвоночника и спинного мозга, Комплексное МРТ поясничного и крестцового отдела позвоночника и спинного мозга)","prefix":"","type":"online","price":253.54,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":3900},{"id":"00000008526","title":"Комплекс из двух исследований \"МРТ обоих плечевых суставов\" (Комплексное МРТ плечевого сустава, Комплексное МРТ плечевого сустава)","prefix":"","type":"offline","price":350.22,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":4800},{"id":"00000008523","title":"Комплекс из двух исследований \"МРТ поясничного отдела позвоночника, крестца и копчика\" (Комплексное МРТ поясничного и крестцового отдела позвоночника и спинного мозга, Комплексное МРТ крестца и копчика)","prefix":"","type":"online","price":301.84,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":3900},{"id":"00000008521","title":"Комплекс из двух исследований \"МРТ шейного и грудного отделов позвоночника\" (Комплексное МРТ шейного отдела позвоночника и спинного мозга, Комплексное МРТ грудного отдела позвоночника и спинного мозга)","prefix":"","type":"offline","price":268.02,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":4200},{"id":"00000008528","title":"Комплекс из двух исследований \"МРТ шейного отдела позвоночника и плечевого сустава\" (Комплексное МРТ шейного отдела позвоночника и спинного мозга, Комплексное МРТ плечевого сустава)","prefix":"","type":"online","price":329.32,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":4500},{"id":"00000007924","title":"комплексное МРТ гипофиза","prefix":"","type":"offline","price":157.57,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":1800},{"id":"00000007738","title":"комплексное МРТ головного мозга с программой ранней диагностики инсультов и МР ангиография","prefix":"","type":"online","price":182.70,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":1800},{"id":"00000007741","title":"комплексное МРТ грудного отдела позвоночника и спинного мозга","prefix":"","type":"online","price":118.44,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":2100},{"id":"00000007735","title":"комплексное МРТ коленного сустава","prefix":"","type":"online","price":163.25,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":2100},{"id":"00000007739","title":"комплексное МРТ крестца и копчика","prefix":"","type":"online","price":166.74,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":2100},{"id":"00000007737","title":"комплексное МРТ крестцово-подвздошных сочленений","prefix":"","type":"online","price":113.94,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":2400},{"id":"00000007730","title":"комплексное МРТ лучезапястного сустава","prefix":"","type":"online","price":184.50,"currency":"BYN","category_id":"00000007142","no_staff":true,"during":2400}]';
    echo 'Исходный JSON: ', $json, "<br><br>\r\n\r\n";
    
    $objects_array = json_decode($json);
    $new_objects_array = [];
    foreach($objects_array as $object){
        if($object->type != 'offline'){
            $new_objects_array[] = $object;
        }
    }
    
    $new_json = json_encode($new_objects_array, JSON_UNESCAPED_UNICODE);
    
    echo 'Перебранный JSON: ', $new_json;

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
1. Декодировать, json_decode.
2. Отфильтровать, array_filter.
3. Закодировать обратно, json_encode.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы