2017-06-02 4 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

"ビーコン"の近くにエラーがあります。私のjsonデータと比較してください。あなたも "http://jsoneditoronline.org"をチェックすることができます。 –

0

は、オブジェクトが1つのOBJ例に割り当てるする:関数以下=>

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

.thisは、オブジェクトの正確な値を検索するために動作します

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

1以下などのパラメータを持つ配列 コール機能前の答えの小さな修正。

このような関数を呼び出してください。検索値はastring形式のような値でなければなりません。

searchObj (myobj, 'Customer1'); 
関連する問題