如何使用PHP从数组中删除JSON键?

cod*_*gon 1 php json

我有以下数组,我希望能够从JSON对象中删除所有“ phonenumber”键以及它的值。仅键“ phonenumber”不是整个对象。我怎样才能做到这一点?

[
    {
        "role": "admin",
        "id": "59df4ef2d8d39",
        "email": "a@a.dk",
        "name": "A",
        "lastname": "A",
        "password": "1",
        "image": "img_webshop\/userimage-59dfb91515810.png"
    },
    {
        "role": "user",
        "id": "59df4f1b070e6",
        "phonenumber": "12345678",
        "name": "B",
        "lastname": "B",
        "password": "2",
        "image": "img_webshop\/userimage-59e37de69475b.png"
    },
    {
        "role": "user",
        "id": "59dfc0cb07985",
        "email": "c@c.dk",
        "name": "C",
        "lastname": "C",
        "password": "3",
        "image": "img_webshop\/userimage-59dfc0cb06c5f.png"
    },
    {
        "role": "user",
        "id": "59dfc22f26f78",
        "phonenumber": "87654321",
        "name": "D",
        "lastname": "D",
        "password": "4",
        "image": "img_webshop\/userimage-59dfc22f2638d.png"
    },
    {
        "role": "user",
        "id": "59dfc460b261e",
        "email": "e@e.dk",
        "name": "E",
        "lastname": "E",
        "password": "5",
        "image": "img_webshop\/userimage-59dfc460af866.png"
    }
]
Run Code Online (Sandbox Code Playgroud)

Aks*_*gde 5

// make array
$array = json_decode($your_json_string, true);

// loop through array
foreach($array as $key => $item){
       // unset them
       unset($array[$key]["phonenumber"]);
}

// make json again
$json_string_modified = json_encode($array);
Run Code Online (Sandbox Code Playgroud)

或使用参考

// make array
$array = json_decode($your_json_string, true);

// loop through array using reference
foreach($array as &$item){

      // unset specific key
      unset($item["phonenumber"]);

}

// unset reference
unset($item);

// make json again
// you may remove JSON_PRETTY_PRINT flag, I kept it just to see o/p
$json_string_modified = json_encode($array,JSON_PRETTY_PRINT);
Run Code Online (Sandbox Code Playgroud)

  • 我认为您不需要进行isset测试。如果不存在,则unset不会出错。 (2认同)