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);
?>