Я делаю что-то глупое и не могу понять.json object to array не ссылающиеся значения
Я вытаскиваю данные настройки, хранящиеся в базе данных 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
yep. работая с ответом от user3146300 - это был параметр, который необходимо было установить, чтобы заставить его преобразовать в ассоциативный массив в 'json_decode' – TH1981