2017-02-22 160 views
-1

使用json_decode時,false的布爾值變爲空值。我正在使用的json字符串的值可能爲空,false,1或某些文本值,並且我只想使用具有值的字段,即使該值爲false。所以當做防止json_decode將虛假值變爲空值

$array = array(); 
foreach($obj as $key => $value){ 
    if($value != ''){ 
    $array[$key] = $value; 
    } 
} 

字段與假值不要保存到$數組。有沒有辦法解決這個問題?

更新:在執行print_r($ obj)時,所有false值都是空的。所以我不認爲!=是問題。如果我print_r json字符串的空值是「null」,false值是「false」,但是當print_r-ing時,json_decoded對象都變爲空值。

回答

1

變化比較從!=!==

$array = array(); 
foreach($obj as $key => $value){ 
    if($value !== ''){ 
    $array[$key] = $value; 
    } 
} 
2

你的假消失,因爲

if($value != ''){ 

使用

if($value !== ''){ 

因爲在PHP錯誤是空的,您的驗證!=從通過

停止錯誤