У меня есть файл JSON, который выглядит так:
[{
"num": "37"
}, {
"num": "79"
}, {
"num": "21"
}, {
"num": "12"
}, {
"num": "90"
}]
Мне нужен мой скрипт для печати суммы этих чисел, вот что я пробовал:
<?php
$dati = file_get_contents('data.json');
$elementi = json_decode($dati, true);
$test = 'test';
$sum = 0;
foreach($elementi['num'] as $key=>$value)
{
$sum+= $value;
}
?>
Но я получил ошибку:
Notice: Undefined index: num in C:\xampp\htdocs\index.php on line 32
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\index.php on line 32
Я застрял здесь, и я не могу найти решение. Кто-нибудь может мне помочь?






Вы всегда должны начинать с print_r() массива, если вы не уверены в его форме и содержании.
foreach($elementi as $arr)
{
$sum+= $arr['num'];
}
Да, я заставил его работать с вашим же решением за 1 секунду до вашего ответа! Я приму ваш ответ в ближайшее время, спасибо :)
объявите $sum, прежде чем использовать его в foreach, иначе вы получите ошибку уведомления о неопределенной переменной.
@SayedMohdAli Исходный код OP уже сделал это, поэтому, поскольку я только предложил мод для кода цикла, я не включил его в свой код.
я бы сделал
$sum = array_sum(array_column($arr, 'num'));
Но это всего лишь я...
Результат
239
Столбец массива вытягивает все значения для «ключа» (в данном случае «число») и создает такой массив:
["37", "79", ...]
Затем Array Sum даст вам сумму массива чисел.
array_sum$sum = array_sum(array_column($elementi, 'num'));
Это была опечатка, исправил