JSON编码几个数组

时间:2012-10-29 13:04:22

标签: php json

我正在使用JSON_encode将数据发送到轨道的js文件。用户可以有一个或多个轨道,这就是问题所在。不知道如何组织我的数组以允许多个数组。我不能在数组中使用数组,因为所有的JSON数据都需要分开,因此会有类似的东西;

track1 {ID:110232....}
track2 {ID:21402....}

如果只有一首曲目,我现在的工作正常。

$ID = $_GET['ID'];
$result = mysql_query("SELECT * FROM tracks WHERE ID = '$ID' ORDER BY timestamp DESC");
while($row = mysql_fetch_array($result)){
    $T_ID = $row['T_ID'];
    $T_url = $row['url'];
    $T_name = $row['name'];
    $T_timestamp = $row['timestamp'];
    $arr = array('T_ID' => $ID,'T_name' => $T_name, 'T_url' => $T_url, 'T_timestamp' => $T_timestamp );

    echo json_encode($arr);
}

1 个答案:

答案 0 :(得分:4)

为什么不能在容器数组中使用(关联)数组,如下所示:

$cont = array();
while($row = mysql_fetch_array($result)){
  $T_ID = $row['T_ID'];
  $T_url = $row['url'];
  $T_name = $row['name'];
  $T_timestamp = $row['timestamp'];
  $arr = array('T_ID' => $ID,'T_name' => $T_name, 'T_url' => $T_url, 'T_timestamp' => $T_timestamp );

  $cont[] = $arr;
}

echo json_encode($cont);

这会产生这样的JSON结构,它将所有轨道保存在不同的对象中:

[ 
  {'T_ID': 1, 'T_name': 1, ... },
  {'T_ID': 2, 'T_name': 2, ... },
  {'T_ID': 3, 'T_name': 3, ... },
  ...
]

如评论中所述,您应切换到PDOmysqli-函数,但这与手头的问题无关。