如何使用json_encode

问题描述

json_encode是将数组转换为JSON格式的便捷方法。要获得提供的输出,您将需要一个数组数组。每个子数组都有键“ name”和“ data”,其中“ name”是Item列,“ data”是另一个包含2011和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);

解决方法

我正在处理具有动态数据(从数据库检索的值)的图表。通过编写查询,我能够从表中检索以下数据

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

我想将以下信息存储在以下结构中,并将其传递到另一页

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

我想将上面的数据推入明细图表。

有什么方法可以生成这种格式吗?我尝试使用json_encode,但无法成功。我可以使用json_encode实现吗?

更新了 我已经尝试过这种方式

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

  }
echo json_encode($rows);

并得到

[{"Item":"pen","2011":"5","2012":"7"},{"Item":"pencil","2011":"4","2012":"20"},{"Item":"eraser","2011":"6","2012":"43"}]