简体   繁体   中英

How get in PHP value from array JSON response of influxdb

I apologize in advance if there was already a similar question. I tried to find a solution but unfortunately I still can't.

I have a JSON response from influxdb

$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]]}]}]}';

and I need to print out the name of columns time and count and values to be able generate a new JSON for Google chart.

What am I able to do now is only get a statement_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/>";
}

But I need to print:

time, count<br/> 
2020-07-02T00:00:00Z,1<br/>
2020-07-03T00:00:00Z,0<br/>
2020-07-04T00:00:00Z,0<br/>
2020-07-05T00:00:00Z,0<br/>
2020-07-06T00:00:00Z,1<br/>

or put it into the variable to be able to work with it. I already tried without converting into array just with

$decode =  json_decode($output2); //without ",true"

Can you please help me how to solve it.

I've spent almost the whole day looking for a solution and I can't find a way to solve the problem.

If you need to print it out on html, just change the \n to <br>

<?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";
}

?>

If i understand you write this would be the code to output the JSON for the Google Chart:

<?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);
?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM