Я создаю простой скрипт на php и json, однако у меня есть некоторые трудности с суммированием нескольких значений по дате. Я хочу, чтобы сумма «Импорт» и «Экспорт» с каждого месяца.
Вот что я хочу напечатать:
array (
'Date' => '2019-03',
'Import' => 1000,
'Export' => 250,
)
array (
'Date' => '2019-04',
'Import' => 100,
'Export' => 600,
)
Мой json:
[
{
"Date": "2019-03",
"Import": "200",
"Export": "50"
},
{
"Date": "2019-03",
"Import": "800",
"Export": "200"
},
{
"Date": "2019-04",
"Import": "100",
"Export": "600"
}
]
Это мой скрипт php:
$url = dirname(__DIR__ ) . '/admin/json/all.json';
$json = file_get_contents($url);
$array_origin = json_decode($json, TRUE);
$stack=array();
foreach ($array_origin as $index => $array_part) {
$stack[$array_part['Date']] =array_key_exists($array_part['Date'],$stack)?$stack[$array_part['Date']]+$array_part['Import']:$array_part['Import'];
}
echo '<pre>' . var_export($stack, true) . '</pre>';
Однако с помощью этого скрипта я могу только суммировать «импорт», но я хочу также суммировать «экспорт».
По этой причине я ищу вашей помощи. Я ценю любую помощь от вас, ребята.
Заранее спасибо. Ваше здоровье
Вам нужно добавить ключи Import
и Export
в массив результатов. Я попытался сократить его и использовал isset
:
foreach ($array_origin as $v) {
$stack[$v['Date']]['Import'] = isset($v['Date']) ? $stack[$v['Date']]['Import'] + $v['Import'] : $v['Import'];
$stack[$v['Date']]['Export'] = isset($v['Date']) ? $stack[$v['Date']]['Export'] + $v['Export'] : $v['Export'];
}
Извините, позвольте спросить, хочу ли я сделать средний "Импорт"?
array_column($stack, 'Import')
затем array_sum
/ count
Спасибо за помощь, я очень ценю :)
Префект. Спасибо :)