【问题标题】:How to Add the particular key values in JSON如何在 JSON 中添加特定的键值
【发布时间】:2016-06-08 10:00:41
【问题描述】:
[marketing] => [{"quartername":"Q2","tactic":"Single Email Campaign","level1":"8000","level2":"6000","level3":"5000","level4":"3000","level5":"1500","level6":"1000","level7":"800","level8":"600","level9":"500","level10":"65"},{"quartername":"Q2","tactic":"Multi-Touch Email Campaign","level1":"350","level2":"200","level3":"156","level4":"142","level5":"122","level6":"112","level7":"80","level8":"65","level9":"35","level10":"15"}]

我有一个 json 数据。当我解码 json 时,值准确:

    Array
(
    [0] => stdClass Object
        (
            [quartername] => Q2
            [tactic] => Single Email Campaign
            [level1] => 8000
            [level2] => 6000
            [level3] => 5000
            [level4] => 3000
            [level5] => 1500
            [level6] => 1000
            [level7] => 800
            [level8] => 600
            [level9] => 500
            [level10] => 65
        )

    [1] => stdClass Object
        (
            [quartername] => Q2
            [tactic] => Multi-Touch Email Campaign
            [level1] => 350
            [level2] => 200
            [level3] => 156
            [level4] => 142
            [level5] => 122
            [level6] => 112
            [level7] => 80
            [level8] => 65
            [level9] => 35
            [level10] => 15
        )

)

我只是希望他们比较“季度名称”,然后将索引 0 键级别 1 值的值添加到索引级别 2 级别 1 值。

我要创建的数组类似于:

    Array
(
    [0] => stdClass Object
        (
            [quartername] => Q2
            [tactic] => 
            [level1] => 8350
            [level2] => 6200
            [level3] => 5156
            [level4] => 3142
            [level5] => 1622
            [level6] => 1112
            [level7] => 880
            [level8] => 665
            [level9] => 535
            [level10] => 80
        )

这里是我试过的代码:

    $a=json_decode($obj_total[$i]['marketing']);


    foreach($a as $key=>$val)
    {
        foreach($val as $datakey=> $data)
        {
         $dte[]=$val->$datakey;

        }
    }
    echo "<pre>"; print_r(array_sum($dte));echo "</pre>";
        }

【问题讨论】:

  • “我只是希望他们比较‘季度名称’,然后将索引 0 键级别 1 值的值添加到索引级别 2 级别 1 值。” 好的。编写代码来做到这一点,如果您遇到问题,请使用该代码发布一个特定问题,询问您遇到的特定问题。更多:How do I ask a good question?What types of questions should I avoid asking?
  • @RiggsFolly 我更新了问题,这也表明我想要哪种类型的数组。
  • 见@T.J.Crowder 评论。我们希望您应该为自己做点什么。 SO 不是免费的编码服务,但当您遇到实际的编码问题时,我们非常愿意提供帮助
  • @RiggsFolly 看看我试过的代码。

标签: php arrays json codeigniter


【解决方案1】:
try this code:

     for($i=0;$i<count($obj_total);$i++)
            {

            $a=json_decode($obj_total[$i]['marketing']);

        $sumArray = array();

            foreach ($a as $k=>$subArray) {
              foreach ($subArray as $id=>$value) {
                $sumArray[$id]+=$value;
              }
            }

echo "<pre>"; print_r($sumArray);echo "</pre>";
             }

【讨论】:

    猜你喜欢
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 2012-12-12
    • 1970-01-01
    相关资源
    最近更新 更多