首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数组合计产品价格

数组合计产品价格
EN

Stack Overflow用户
提问于 2018-07-25 19:35:59
回答 1查看 321关注 0票数 0

我将这个JSON数组解码为PHP数组,并希望检查每个类别总共售出了多少

代码语言:javascript
运行
复制
    [{
        "categorycode": "W0000000391",           
        "grosssalesprice": "50.00"
    },
    {
        "categorycode": "W0000000396",
        "grosssalesprice": "170.00"
    },
    {
        "categorycode": "W0000000391",
        "grosssalesprice": "50.00"
    },
    {            
        "categorycode": "W0000000391",
        "grosssalesprice": "55.00"
    }]

并且想要得到

代码语言:javascript
运行
复制
{
    "categorycode": "W0000000391",           
    "grosssalesprice": "155.00"
},
{
    "categorycode": "W0000000396",
    "grosssalesprice": "170.00"
}

我试过了,这给了我一个foreach元素,但是我如何在这个数组中追加每一项呢?

代码语言:javascript
运行
复制
foreach($jsonDecoded as $item) {            
            $sortedData[$item['categorycode']] = array(
            'Konto' => $item['categorycode'],
            'Beløb' => $item['grosssalesprice']
            );          
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-25 19:41:34

代码语言:javascript
运行
复制
$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);

应该做到这一点,并提出:

代码语言:javascript
运行
复制
array(2) {
  ["W0000000391"]=>
  float(155)
  ["W0000000396"]=>
  float(170)
}

但是,为了更好地匹配您所需的格式:

代码语言:javascript
运行
复制
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()以将数组键重置为整数值

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51517910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档