如何从XDB的数组JSON响应中获取PHP值

如何从XDB的数组JSON响应中获取PHP值,php,arrays,json,influxdb,Php,Arrays,Json,Influxdb,如果已经有类似的问题,我提前道歉。我试图找到一个解决办法,但不幸的是,我还是找不到 我有一个来自XDB的JSON响应 $output2='{“结果”:[{“语句id”:0,“系列”:[{“名称”:“dbinfluxdb”,“列”:[“时间”,“计数”],“值”:[[“2020-07-02T00:00:00Z”,1],“2020-07-03T00:00:00Z”,0],“2020-07-05T00:00:00Z”,0],“2020-07-05T00:00:00Z”,0],“2020-07-06T0

如果已经有类似的问题,我提前道歉。我试图找到一个解决办法,但不幸的是,我还是找不到

我有一个来自XDB的JSON响应

$output2='{“结果”:[{“语句id”:0,“系列”:[{“名称”:“dbinfluxdb”,“列”:[“时间”,“计数”],“值”:[[“2020-07-02T00:00:00Z”,1],“2020-07-03T00:00:00Z”,0],“2020-07-05T00:00:00Z”,0],“2020-07-05T00:00:00Z”,0],“2020-07-06T00:00:00Z”,1],“2020-07-07-07T00:00:00Z”,0]}

我需要打印出
time
count
列的名称和值,以便为Google图表生成新的JSON

我现在只能得到一个
语句\u id=0

$decode =  json_decode($output2,true);
foreach($decode['results'] as $val){
    //Actual statement_id is 0   
    echo "statement_id is "; 
    echo $val['statement_id'];
    echo "<br/>";
}
你能帮我解决这个问题吗


我花了几乎一整天的时间寻找解决方案,但我找不到解决问题的方法。

如果需要在html上打印,只需将\n更改为

<?php
        
$output2 = '{"results": [{"statement_id": 0,"series": [{"name": "dbinfluxdb","columns": ["time","count"],"values": [["2020-07-02T00:00:00Z",1],["2020-07-03T00:00:00Z",0],["2020-07-04T00:00:00Z",0],["2020-07-05T00:00:00Z",0],["2020-07-06T00:00:00Z",1],["2020-07-07T00:00:00Z",0]]}]}]}';
$decode = json_decode($output2,true);

echo $decode["results"][0]["series"][0]["columns"][0].",".$decode["results"][0]["series"][0]["columns"][1]."\n";
foreach($decode["results"][0]["series"][0]["values"] AS $el)
{
   echo $el[0].",".$el[1];
   echo "\n";
}

?>

如果我理解您编写的代码,那么这就是为Google图表输出JSON的代码:

<?php
        
$output2 = '{"results": [{"statement_id": 0,"series": [{"name": "dbinfluxdb","columns": ["time","count"],"values": [["2020-07-02T00:00:00Z",1],["2020-07-03T00:00:00Z",0],["2020-07-04T00:00:00Z",0],["2020-07-05T00:00:00Z",0],["2020-07-06T00:00:00Z",1],["2020-07-07T00:00:00Z",0]]}]}]}';
$decode = json_decode($output2,true);
$googlechart = array();
$googlechart[] = array($decode["results"][0]["series"][0]["columns"][0],$decode["results"][0]["series"][0]["columns"][1]);
foreach($decode["results"][0]["series"][0]["values"] AS $el)
{
   $googlechart[] = array($el[0],$el[1]);
}


echo json_encode($googlechart);
?>

如果需要在html上打印,只需将\n更改为

<?php
        
$output2 = '{"results": [{"statement_id": 0,"series": [{"name": "dbinfluxdb","columns": ["time","count"],"values": [["2020-07-02T00:00:00Z",1],["2020-07-03T00:00:00Z",0],["2020-07-04T00:00:00Z",0],["2020-07-05T00:00:00Z",0],["2020-07-06T00:00:00Z",1],["2020-07-07T00:00:00Z",0]]}]}]}';
$decode = json_decode($output2,true);

echo $decode["results"][0]["series"][0]["columns"][0].",".$decode["results"][0]["series"][0]["columns"][1]."\n";
foreach($decode["results"][0]["series"][0]["values"] AS $el)
{
   echo $el[0].",".$el[1];
   echo "\n";
}

?>

如果我理解您编写的代码,那么这就是为Google图表输出JSON的代码:

<?php
        
$output2 = '{"results": [{"statement_id": 0,"series": [{"name": "dbinfluxdb","columns": ["time","count"],"values": [["2020-07-02T00:00:00Z",1],["2020-07-03T00:00:00Z",0],["2020-07-04T00:00:00Z",0],["2020-07-05T00:00:00Z",0],["2020-07-06T00:00:00Z",1],["2020-07-07T00:00:00Z",0]]}]}]}';
$decode = json_decode($output2,true);
$googlechart = array();
$googlechart[] = array($decode["results"][0]["series"][0]["columns"][0],$decode["results"][0]["series"][0]["columns"][1]);
foreach($decode["results"][0]["series"][0]["values"] AS $el)
{
   $googlechart[] = array($el[0],$el[1]);
}


echo json_encode($googlechart);
?>

工作完美!非常感谢@DavidBerryman!你让我很开心!!:-)工作完美!非常感谢@DavidBerryman!你让我很开心!!:-)@别担心,非常感谢。看起来好多了,干净多了。@Don’t谢谢。看起来好多了,干净多了。