我一整天都在尝试根据数组的值求和,只得到不同的值。
这是我的输入数组:
[
{
"commoditycodes": "6204.4400",
"statisticalvalue": 1152.6,
"cvr": "DK35425950"
},
{
"commoditycodes": "6204.4400",
"statisticalvalue": 542.4,
"cvr": "DK35425950"
},
{
"commoditycodes": "6104.4300",
"statisticalvalue": 1827,
"cvr": "DK35425950"
},
{
"commoditycodes": "6114.3000",
"statisticalvalue": 5211.36,
"cvr": "DK37968552"
},
{
"commoditycodes": "6114.3000",
"statisticalvalue": 798.64,
"cvr": "DK99999999"
}
]
我正在尝试“收集”所有具有
相同的
cvr
值,但仍然根据
commoditycodes
. 这样地:
{
"commoditycodes": "6204.4400",
"statisticalvalue": 1695,
"cvr": "DK35425950"
},
{
"commoditycodes": "6104.4300",
"statisticalvalue": 1827,
"cvr": "DK35425950"
},
{
"commoditycodes": "6114.3000",
"statisticalvalue": 5211.36,
"cvr": "DK37968552"
},
{
"commoditycodes": "6114.3000",
"statisticalvalue": 798.64,
"cvr": "DK99999999"
}
]
如您所见,从输入中,我的数组的前两个结果有:
然后我们求和
statisticalvalue
.
第三个结果与前两个结果的cvr值相同,
然而
这个
commoditycode
值是不同的-所以这是一个唯一的值。
我的数组的第四和第五个元素也是唯一的。
所以基本上,我想总结一下
统计值
哪里:
我尝试了以下方法:
$result = [];
foreach ($array as $val) {
//Not a duplicate cvr code
if (!isset($result[$val['cvr']])) {
$result[$val['cvr']] = $val;
//Duplicate cvr code.
} else {
$result[$val['cvr']]['statisticalvalue'] += $val['statisticalvalue'];
}
}
但它在下面返回,只取
CVR
价值观——但不是
商品代码
:
[
{
"commoditycodes": "6104.6300",
"statisticalvalue": 68701.56,
"cvr": "DK35425950"
},
{
"commoditycodes": "6104.6300",
"statisticalvalue": 21108.95,
"cvr": "DK37968552"
},
{
"commoditycodes": "6114.3000",
"statisticalvalue": 798.64,
"cvr": "DK99999999"
}
]
我完全迷路了怎么检查这个?