如何从数组json php中删除值?

时间:2013-01-18 07:00:28

标签: php arrays json

我有一个示例代码:

$json_encode = '{"OS":"Android","Title":"Galaxy"}';
$json_decode = json_decode($json_encode);
foreach($json_decode as $key => $value) {
   if($key == 'Title') {
       unset($key); 
   }
}
print_r(json_encode($json_decode));

但结果不能来自那个json字符串remove key='Title',如何修复它?

4 个答案:

答案 0 :(得分:3)

如果Title索引始终存在,您不需要那些额外的代码行,那么您可以直接取消设置Title索引:

$json_encode = '{"OS":"Android","Title":"Galaxy"}';
$json_decode = json_decode($json_encode);
unset($json_decode['Title']); 

有关PHP数组取消设置功能的更多信息,请参阅以下链接,您在简单语法上犯了错误。

PHP Array Unset

答案 1 :(得分:1)

您忘记在unset语句中包含该数组。它应该是:

unset($json_decode[$key]); 

实际上,对于您的特定示例,您甚至不需要循环,您可以直接取消设置值。

另外,要从json_encode函数获取关联数组,还需要添加另一个参数:

$json_decode = json_decode($json_encode, true);

答案 2 :(得分:0)

$json_decode = json_decode($json_encode,TRUE);

如果" TRUE"没有传递,json_decode返回一个对象。

同时将unset($key)替换为unset($json_decode[$key]);

答案 3 :(得分:0)

$json_encode = '{"OS":"Android","Title":"Galaxy"}';
$json_decode = json_decode($json_encode, true);
foreach ($json_decode as $key => $value) {
    if (in_array('Title', $value)) {
        unset($json_decode[$key]);
    }
}
$json_encode = json_encode($json_decode);