我将这个JSON数组解码为PHP数组,并希望检查每个类别总共售出了多少
[{
"categorycode": "W0000000391",
"grosssalesprice": "50.00"
},
{
"categorycode": "W0000000396",
"grosssalesprice": "170.00"
},
{
"categorycode": "W0000000391",
"grosssalesprice": "50.00"
},
{
"categorycode": "W0000000391",
"grosssalesprice": "55.00"
}]并且想要得到
{
"categorycode": "W0000000391",
"grosssalesprice": "155.00"
},
{
"categorycode": "W0000000396",
"grosssalesprice": "170.00"
}我试过了,这给了我一个foreach元素,但是我如何在这个数组中追加每一项呢?
foreach($jsonDecoded as $item) {
$sortedData[$item['categorycode']] = array(
'Konto' => $item['categorycode'],
'Beløb' => $item['grosssalesprice']
);
}发布于 2018-07-25 19:41:34
$items = json_decode($json,true);
foreach($items as $item){
if(empty($totalInCategory[$item['categorycode']])){
$totalInCategory[$item['categorycode']] = 0.00;
}
$totalInCategory[$item['categorycode']] += $item['grosssalesprice'];
}
var_dump($totalInCategory);应该做到这一点,并提出:
array(2) {
["W0000000391"]=>
float(155)
["W0000000396"]=>
float(170)
}但是,为了更好地匹配您所需的格式:
foreach($items as $item){
if(empty($totalInCategory[$item['categorycode']]['grosssalesprice'])){
$totalInCategory[$item['categorycode']]['grosssalesprice'] = 0.00;
}
$totalInCategory[$item['categorycode']]['categorycode'] = $item['categorycode'];
$totalInCategory[$item['categorycode']]['grosssalesprice'] += $item['grosssalesprice'];
} 但是键必须是唯一的,所以您可以像这样保留它们,或者在结果数组上运行sort()以将数组键重置为整数值
https://stackoverflow.com/questions/51517910
复制相似问题