I made a program that converts JSON to a PHP array and checks every value of the multidimensional array with a loop and if a value matches certain values then it deletes that key and value and converts it back to JSON. I am trying to make this with less code.
I use a nested foreach loop to check every element in the array. I give it condition like if value == 0 or empty string or null then delete it but it occupies too many lines of code. It is not a good method for too many multidimensional array so I was looking for a better solution.
This is my JSON:
{
"UniqueId": "PO3589472",
"FareType": 2,
"BookedBy": "Api ",
"OrderBy": "Api ",
"ClientBalance": 0,
"Error": null,
"Success": true,
"TktTimeLimit": "2022-08-10T14:11:45",
"Category": 21,
"Status": 21,
"RefundMethod": 1,
"TravelItinerary": {
    "ItineraryInfo": {
        "ItineraryPricing": {
            "BaseFare": 8469250,
            "ServiceTax": 0,
            "TotalTax": 993000,
            "TotalFare": 9462250,
            "TotalCommission": 0,
            "Currency": "IRR"
        },
        "CustomerInfoes": [
            {
                "Customer": {
                    "Gender": 0,
                    "PassengerType": 1,
                    "PassportNumber": "",
                    "NationalId": "1829961233",
                    "Nationality": "IR",
                    "DateOfBirth": "1996-07-08T00:00:00",
                    "PassportExpireDate": "0001-01-01T00:00:00",
                    "PassportIssueCountry": "IR",
                    "PassportIssueDate": "2022-08-10T00:00:00",
                    "PaxName": {
                        "PassengerFirstName": "MAJID",
                        "PassengerMiddleName": null,
                        "PassengerLastName": "MAJIDIFAR",
                        "PassengerTitle": 0
                    }
                },
                "ETickets": "8151405444745",
                "ETicketNumbers": [
                    {
                        "ETicketNumber": "8151405444745",
                        "EticketStatus": 1,
                        "IsRefunded": false,
                        "DateOfIssue": "2022-08-10T13:58:47",
                        "AirlinePnr": "TXNXM",
                        "TotalRefund": 0
                    }
                ]
            }
        ],
        "ReservationItems": [
            {
                "AirEquipmentType": "737",
                "AirlinePnr": "TXNXM",
                "ArrivalAirportLocationCode": "ABD",
                "ArrivalDateTime": "2022-08-17T23:25:00",
                "ArrivalTerminal": "",
                "Baggage": "20KG",
                "DepartureAirportLocationCode": "THR",
                "DepartureDateTime": "2022-08-17T22:05:00",
                "DepartureTerminal": "Terminal 4",
                "FlightNumber": "3750",
                "JourneyDuration": "01:20",
                "JourneyDurationPerMinute": 0,
                "MarketingAirlineCode": "EP",
                "OperatingAirlineCode": "EP",
                "ResBookDesigCode": "Y",
                "StopQuantity": 0,
                "IsCharter": false,
                "TechnicalStops": [],
                "IsReturn": false,
                "CabinClassCode": 1
            }
        ],
        "TripDetailPtcFareBreakdowns": [
            {
                "PassengerTypeQuantity": {
                    "PassengerType": 1,
                    "Quantity": 1
                },
                "TripDetailPassengerFare": {
                    "BaseFare": 8469250,
                    "ServiceTax": 0,
                    "Tax": 993000,
                    "TotalFare": 9462250,
                    "Commission": 0,
                    "Currency": "IRR"
                }
            }
        ],
        "PhoneNumber": "09359276735",
        "Email": "[email protected]",
        "ItineraryFareFamily": null
    },
    "BookingNotes": [],
    "Services": []
},
"ValidatingAirlineCode": "EP",
"DirectionInd": 1,
"OnlineCheckIn": false,
"AirRemark": [],
"curl_error": false}
this is my php code
<?php
$jsondata = file_get_contents("test_php.json");
$json = json_decode($jsondata, true);
foreach($json as $keys1 => $values1){
    if($values1 == 0 || $values1 == "" || $values1 == "Api " || !isset($values1) ){
        unset($json[$keys1]);
    }else{
        if(is_array($values1)){
            foreach($values1 as $keys2 => $values2){
                if($values2 == 0 || $values2 == "" || $values2 == "Api " || !isset($values2) ){
                    unset($json[$keys1][$keys2]);
                }else{
                    if(is_array($values2)){
                        foreach($values2 as $keys3 => $values3){
                            if($values3 == 0 || $values3 == "" || $values3 == "Api " || !isset($values3) ){
                                unset($json[$keys1][$keys2][$keys3]);
                            }else{
                                if(is_array($values3)){
                                    foreach($values3 as $keys4 => $values4){
                                        if($values4 == 0 || $values4 == "" || $values4 == "Api " || !isset($values4) ){
                                            unset($json[$keys1][$keys2][$keys3][$keys4]);
                                        }else{
                                            if(is_array($values4)){
                                                foreach($values4 as $keys5 => $values5){
                                                    if($values5 == 0 || $values5 == "" || $values5 == "Api " || !isset($values5) ){
                                                        unset($json[$keys1][$keys2][$keys3][$keys4][$keys5]);
                                                    }else{
                                                        if(is_array($values5)){
                                                            foreach($values5 as $keys6 => $values6){
                                                                if($values6 == 0 || $values6 == "" || $values6 == "Api " || !isset($values6) ){
                                                                    unset($json[$keys1][$keys2][$keys3][$keys4][$keys5][$keys6]);
                                                                }else{
                                                                    if(is_array($values6)){
                                                                        foreach($values6 as $keys7 => $values7){
                                                                            if($values7 == 0 || $values7 == "" || $values7 == "Api " || !isset($values7) ){
                                                                                unset($json[$keys1][$keys2][$keys3][$keys4][$keys5][$keys6][$keys7]);
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
$path = "test_php(final).json";
$converter = json_encode($json, JSON_PRETTY_PRINT);
// print_r($v);
$open = fopen($path, 'w');
fwrite($open, $converter);
fclose($open);
// print_r($json);
?>

