2013-01-18 22 views
1

我有一个示例代码:如何从数组json php中删除值?

$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',如何解决呢?

回答

1

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

unset($json_decode[$key]); 

实际上,对于你的具体的例子,你甚至不需要一个循环,你可以直接取消设置值。

也得到来自json_encode功能的关联数组,你需要添加另一个参数:

$json_decode = json_decode($json_encode, true); 
0
$json_decode = json_decode($json_encode,TRUE); 

如果“真”不通过,json_decode返回一个对象。

还与unset($json_decode[$key]);

3

更换unset($key)你不需要的代码,这些额外的线路,如果Title指数来始终,那么你就可以直接取消设置的Title指数:

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

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

PHP Array Unset

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