[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удаление в JSON файле
Dima85
Есть JSON такого содержимого:
{"user":[{"mac":"60:11:94:08:3C:5D","data":"2018\/04\/04 19:23:01"},{"mac":"60:01:94:44:12:B9","data":"2018\/04\/05 12:22:00"}]}


Удаление я делаю таким образом:
    $datas = file_get_contents('reg.json');
$data = json_decode($datas, true);
foreach ($data["user"] as $key => $element) {
if ($element['mac'] == $mac) {
unset($data["user"][$key]);
}
}

file_put_contents("reg.json", json_encode($data), LOCK_EX);


Нужная запись удаляется но JSON файл превращается в такой, это плохо, подскажите что делать
{"user":{"0":{"mac":"60:11:94:08:3C:5D","data":"2018\/04\/04 19:23:01"},"2":{"mac":"60:01:94:44:12:B9","data":"2018\/04\/05 12:22:00""}}
walerus
Dima85
Не может такого быть
Цитата
{"user":{"0":{"mac":"60:11:94:08:3C:5D","data":"2018\/04\/04 19:23:01"},"2":{"mac":"60:01:94:44:12:B9","data":"2018\/04\/05 12:22:00""}}
это вообще не корректный формат, скобок не хватает и кавычка лишняя.

Твой код, у меня отрабатывает правильно, только нотисы есть, т.к. "$mac" - не обозначен, НО, в результате получается точно такой же код, как и в исходном файле.
brevis
Перед file_put_contents():
$data["user"] = array_values($data["user"]);


_____________
Чатик в телеге
Dima85
brevis cпасибо, помогло!
walerus
Dima85
На будущее пиши полностью вопрос, потому как не понятно из "задачи", в чем была проблема, а проблема проявляется если "0" элемент массива - удалить...

brevis
Красавчик cool.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.