我正在用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>';
但是,使用此脚本,我只能对“导入”求和,但我也希望对“导出”求和。
因此,我正在寻求您的帮助。 感谢您的帮助。
先谢谢了。 干杯
答案 0 :(得分:2)
您需要将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'];
}