2013-01-18 53 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);