【问题标题】:trying to create JSON code for NVD3 Charts尝试为 NVD3 图表创建 JSON 代码
【发布时间】:2014-09-28 11:00:56
【问题描述】:

我完全被这段代码卡住了,我已经搜索并搜索了它以使其工作并且失败了。

我的 Json 输出目前看起来像这样

 [
    {
        "key": "OWM1",
        "values": [
            [
                "x : EW",
                "y :4"
            ],
            [
                "x : RSE",
                "y :3"
            ],
            [
                "x : SWE",
                "y :2"
            ],
            [
                "x : WTE",
                "y :1"
            ],
            [
                "x : WWE",
                "y :1"
            ]
        ]
    },
    {
        "key": "OWM2",
        "values": [
            [
                "x : EW",
                "y :4"
            ],
            [
                "x : RSE",
                "y :2"
            ],
            [
                "x : SWE",
                "y :1"
            ],
            [
                "x : WTE",
                "y :3"
            ],
            [
                "x : WWE",
                "y :2"
            ]
        ]
    }
]

但是为了 NVD3 图表能够正确处理它,我需要它看起来像这样。

[
  {
    "key": "OWM1",

    "values":
      [      
        { x : "EW", y : 4 },
        { x : "RSE", y : 3 },
        { x : "SWE",   y : 2 }  
        { x : "WTE",   y : 1 }  
        { x : "WWE",   y : 21 }  
      ]
  },
   {
    key: "OWM2",

    values:
      [      
        { x : "EW", y : 4 },
        { x : "RSE", y : 2 },
        { x : "SWE",   y : 1 }  
        { x : "WTE",   y : 3 }  
        { x : "WWE",   y : 2 } 
      ]
  }]

这是我生成 json 的第一个输出的 PHP 代码。

$result = mysqli_query($con,"SELECT CODE, _POS, COUNT(CODE) AS COUNT from defects WHERE FPOS IN ('OWM1','OWM2') GROUP BY POS, CODE");


if($result) {
    $jsonData = convert($result);
}

function convert($result) {

    $intermediate = array();

    while($rows = mysqli_fetch_assoc($result)) {
        $key = $rows['POS'];
        $x = $rows['CODE'];
        $y = $rows[''];
        $intermediate[$key][] = array('x : ' .$x,'y :' . $y);
    }


   $output = array();

    foreach($intermediate as $key => $values) {
        $output[] = array(
            "key" => $key,
            'values' => $values
        );
    }

    echo json_encode($output);

}





mysqli_close($con);

有没有人可以帮助我处理我必须看起来与第二组与 NVD3 图表兼容的 JSON 代码一模一样的代码?

非常感谢。

【问题讨论】:

    标签: php mysql json d3.js nvd3.js


    【解决方案1】:

    看起来您在这里创建了一个非关联数组...

    $intermediate[$key][] = array('x : ' .$x,'y :' . $y);
    

    将其替换为...

    $intermediate[$key][] = array('x' => $x, 'y' => $y);
    

    【讨论】:

    • 你这个绝对的巫师!效果很好,已经尝试了 4 个小时!真的很感谢它男人
    猜你喜欢
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多