Не записывает в многомерный массив

200
11 февраля 2018, 01:06

Изначально файл data.json пустой

$text[1] это перемменная типа string в которой храниться сумма, $userId это перемменная типа integer

После запуска данного кода в data.json записывается null

                        $file = file_get_contents('data.json');
                        $taskList = json_decode($file, TRUE); 
                        unset($file);
                        $taskList[$userId] = array("account_id" => $text[1], "time" => time());
                        file_put_contents('data.json', json_encode($taskList));
                        unset($taskList); 
Answer 1

Изначально файл data.json пустой

В этой фразе и кроется ответ. "Пусто" - это не подпадает под понятие "JSON-строка". Или проверяйте полученные данные из файла на "пустоту":

$file = file_get_contents('data.json');
if(empty($file)) {
    $taskList = [];// для PHP < 5.4 - $taskList = array();
}

Или используйте метод json_last_error()

$taskList = json_decode($file, TRUE); 
if(json_last_error() !== JSON_ERROR_NONE) {
    $taskList = [];
}

В крайнем случае, можно принудительно приводить тип данных к массиву (но лично я так бы не делал)

$taskList = (array)json_decode($file, TRUE);

P.S. Зачем на каждом шагу удалять переменные? Если нет специфической задачи, то это абсолютно лишнее телодвижение.

READ ALSO
Не выполняется php в html файлах

Не выполняется php в html файлах

Я добавил вhtaccess запись AddType application/x-httpd-php

208
Как разрабатывать через связку PhpStorm + Docker?

Как разрабатывать через связку PhpStorm + Docker?

В интернете куча информации о докере по базовым вещам, таких как "как скачать образ", "как запустить контейнер", но почти ничего нет о том, что...

334
закрыть прямой доступ к странице, но оставить возможность для ajax подгружать эту страницу на сайт

закрыть прямой доступ к странице, но оставить возможность для ajax подгружать эту страницу на сайт

Пример, есть страница indexphp на нее подгружаем с помощью ajax некий контент со страницы content

242
Нубский вопрос по PHP

Нубский вопрос по PHP

Представьте на минуту такую картину: есть сайт продающий какие-то услуги(товары)Пользователь заходит на него и находит нужную ему услугу(товар)

225