2017-06-02 86 views
0

我有一個相當嵌套的JSON文件。我如何刪除包含我的值的數組?對於例如:我想刪除從JSON文件{"customer":"Customer1","date":"2017-06-03"...},我已經知道了「customer1表」PHP:搜索並刪除JSON對象

{ 
      "info": [{ 
       "customer": "Customer1", 
       "date": "2017-06-03", 
       "beacons": [{ 
        "data1": "1234", 
        "data2": "Test1", 
       }, { 
        "data1": "0088", 
        "data2": "Test2", 
       }] 
      },{ 
       "customer": "Customer2", 
       "date": "2017-06-03", 
       "beacons": [{ 
        "data1": "dcdd4", 
        "data2": "Test3", 
       }, { 
        "data1": "0088", 
        "data2": "Test4", 
       }] 
      }] 
     } 

謝謝!

+0

你到底想要做什麼,以恰當的解釋分享你的代碼。否則,我們最終會承擔一些事情。 –

+0

你想通過jQuery或PHP做到嗎? –

+0

你到目前爲止嘗試過什麼? –

回答

1

你的json數據存在一些問題。這是無效的json數據;我解碼了josn數據&,然後檢查「customer」value ='Customer1',然後從主數組中移除數組。

這應該是這樣的:

$jsonData = '{"info ": [{ 
    "customer ": "customer1 ", 
    "date ": "2017 - 06 - 03 ", 
    "beacons ": [{ 
     "data1 ": "1234", 
     "data2 ": "Test1" 
    }] 
}, { 
    "customer": "customer2 ", 
    "date": "2017 - 06 - 04 ", 
    "beacons": [{ 
     "data1": "dcdd4", 
     "data2": "Test3" 
    }] 
}] 
}'; 

$myData = json_decode($jsonData,true); 


foreach($myData["info"] as $k=>$arr) { 
    if($arr["customer"] == "customer1") { 
     unset($myData["info"][$k]); 
    } 
}  
+0

@zZPrank,你的問題解決了嗎? –

+0

謝謝@Dipanwita,但我不知道我的JSON文件中是否有任何錯誤使其不起作用 – zZPrank

+0

「beacon」附近存在錯誤請將其與我的json數據進行比較。你也可以通過「http://jsoneditoronline.org」進行交叉檢查。 –

0

使對象分配給一個OBJ例如:下面的功能=>

var myobj={"info": [{ ...... }]} 

。這將爲在搜索對象的精確值工作array 使用下面的參數調用函數

searchObj (myobj, Customer1); 

function searchObj (obj_name, searchingval) { 
    for (var key in obj_name) { 
     var value = obj_name[key]; 

     if (typeof value === 'object') { 
      searchObj(value, searchingval); 
     } 

     if (value === searchingval) { 
      console.log('property name=' + key + ' property value=' + value); 
     } 

    } 
} 
0

one在前面的答案中小修正。

請致電這樣的功能。搜索值應該是astring格式的值。

searchObj (myobj, 'Customer1');