我正在做一些愚蠢的事情,無法弄清楚。json對象數組沒有引用值
我把存儲在mysql數據庫中的設置細節作爲json對象,然後將它們轉換爲數組。
$settings = (array)json_decode($user['settings']);
我可以print_r()
此爲以下內容:
Array
(
[2] => 1
[1] => 1
)
好爲止。
如果我嘗試更新的設置之一,因此,例如改變1等於0,我得到這個:
Array
(
[2] => 1
[1] => 1
[1] => 0
)
我這樣做只是這一點:
$settings[1] = 0;
最終我試圖取消設置值,如果它是0,然後更新數據庫。它不是更新值,而是創建一個新條目,並且使用unset
不會執行任何操作。
我在做什麼錯?參考
完整的代碼片段:
$settings = (array)json_decode($user['settings']);
print_r($settings);
if(isset($form['usr'][$user['id_user']])){
$settings[1] = 1;
}else{
$settings[1] = 0;
unset($settings[1]);
}
print_r($settings);
回報:
Array
(
[2] => 1
[1] => 1
)
Array
(
[2] => 1
[1] => 1
[1] => 0
)
感謝您指出錯字;我輸入得太快並修改。 – TH1981
你現在有這個工作嗎? – geoffreybans
是的。使用user3146300的答案 - 這是需要設置爲強制它轉換爲json_decode' – TH1981