1

我有一个示例代码:

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

但是结果不能remove key='Title'来自那个json字符串,如何解决?

4

4 回答 4

3

您不需要那些额外的代码行,如果Title索引总是出现,那么您可以Title直接取消设置索引:

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

有关 PHP Array Unset函数的更多信息,请参阅下面的链接,您在简单语法上犯了错误。

PHP 数组未设置

于 2013-01-18T07:02:23.047 回答
1

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

unset($json_decode[$key]); 

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

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

$json_decode = json_decode($json_encode, true);
于 2013-01-18T07:01:56.340 回答
0
$json_decode = json_decode($json_encode,TRUE);

如果未传递“TRUE”,则 json_decode 返回一个对象。

也替换unset($key)unset($json_decode[$key]);

于 2013-01-18T07:02:09.457 回答
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);
于 2013-01-18T07:08:44.233 回答