Я пытаюсь удалить значение из test_bots.json и сохранить его обратно, но каким-то образом формат данных изменяется в процессе.Почему мой массив JSON превращается в объект?
test_bots.json содержит этот массив JSON:
["John","Vladimir","Toni","Joshua","Jessica"]
Мой код выглядит следующим образом:
$good = 'Toni';
$good_arr = file_get_contents('test_bots.json');
$good_arr = json_decode($good_arr);
if(in_array($good, $good_arr)){
$key = array_search($good, $good_arr);
unset($good_arr[$key]);
$good_arr2 = json_encode($good_arr);
file_put_contents('test_bots.json',$good_arr2);
}
Вывод, который сэкономленный:
{"0":"John","1":"Vladimir","3":"Joshua","4":"Jessica"}
, но я хочу, выход на вид:
["John","Vladimir","Joshua","Jessica"]
Я попытался выполнить ассемблер массива перед его сохранением, но он не работает.
Почему это происходит?
Изменить '$ good_arr' в' file_put_contents' на '$ good_arr2'. – jardis
Похоже, только опечатка. Как отметил @jardis, вы не сохраняете переменную, которую вы только что создали с помощью 'json_encode', в файл, вы сохраняете некодированный массив. –
Извините, что это была опечатка. Я редактировал свой вопрос. @ Do not Panic – MHH