#php #json #count #sum
Вопрос:
У меня есть пара файлов json в каталоге data
. Каждый файл json выглядит следующим образом:
{
"id": "id_2021-04-01_1300",
"starttime": "13:00",
"endtime": "18:00",
"hours": 5
}
Чтобы подсчитать сумму всего hours
вместе из всех файлов json, у меня есть этот код на php:
$files = glob('data/*.json'); // all json-files in array
foreach($files as $file) {
$hours_arrays[] = json_decode(file_get_contents($file), true);
}
$total_hours = 0;
foreach($hours_arrays as $key => $val) {
$total_hours = $val['hours'];
}
Согласно этому коду, $total_hours
он должен содержать сумму всех часов из всех файлов json. Но я вернулся 0
. Что я делаю не так?
Комментарии:
1.
var_dump($files)
возвращает что? Включены ли у вас отчеты об ошибках?2. это возвращает мне массив всех файлов json
3. что
print_r($hours_arrays);
это показывает?4. хм, странно, это возвращает:
array(0) { }
5. Может
file_get_contents
быть, это провал в таком случае? Логика кода верна 3v4l.org/GDcmB так что, вероятно, это разрешения или местоположение.
Ответ №1:
Я только что запустил ваш код, и он отлично работает. https://prnt.sc/1xzcibj. Отладьте, чтобы ваши файлы имели правильный путь и вы получали содержимое. Также проверьте проанализированное содержимое файлов в переменной $hours_arrays
. Это должно выглядеть как переменная на моем скриншоте
Комментарии:
1. если это сработает, то будет закрытое голосование за опечатки/непродуктивность
2. Я не могу сказать, что это работает на этого человека. Он должен проверить правильность пути к файлам json и проверить содержимое файлов.