Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
174 views
in Technique[技术] by (71.8m points)

php - how to use json_encode

I'm dealing with highcharts with dynamic data (values retrieved from database). By writing a query i was able to retrieve the following data from the table

Item   2011   2012
pen     5      7
pencil  4      20
eraser  6      43

I want to store the above info in the following structure and pass it to another page

[{ name:'pen', data: [5,7]},{ name:'pencil', data: [4,20]},{ name:'eraser', data: [6,43]}]";

I want to push the above data to the drilldown highchart.

Is there a way i can generate in this format? I've tried using json_encode but unable to succeed. Can i achieve this using json_encode?

Updated I've tried in this way

while($row = mysql_fetch_assoc($result))
  {
  $rows[]= $row;

  }
echo json_encode($rows);

and got

[{"Item":"pen","2011":"5","2012":"7"},{"Item":"pencil","2011":"4","2012":"20"},{"Item":"eraser","2011":"6","2012":"43"}]
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

json_encode is a convenience method to convert an array into JSON format. To have the output you provided, you will need an array of arrays. Each sub-array has keys "name" and "data", where "name" is the Item column, and "data" is another array containing values from 2011 and 2012.

$results = mysql_query("...");
$arr = array();

while ($row = mysql_fetch_assoc($results))
{
    $name = $row['Item'];
    $data = array($row['2011'], $row['2012']);

    $arr[] = array('name' => $name, 'data' => $data);
}

echo json_encode($arr);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...