我有一个示例代码:
$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'
,如何修复它?
答案 0 :(得分:3)
如果Title
索引始终存在,您不需要那些额外的代码行,那么您可以直接取消设置Title
索引:
$json_encode = '{"OS":"Android","Title":"Galaxy"}';
$json_decode = json_decode($json_encode);
unset($json_decode['Title']);
有关PHP数组取消设置功能的更多信息,请参阅以下链接,您在简单语法上犯了错误。
答案 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);