我正在尝试学习如何将MySQL查询的结果正确编码为数组/ JSON。我可以做基础知识,我遇到的困难是得到一个特定的结构。
我的数据如下:
db_name file_type name value count
archive A send vid 338
archive A perm trrr 323
archive A mod 2016 339
archive B rate 32K 5414
archive B off Bleep 466
archive B level 1222 466
我想创建一个可以编码为JSON的数组,如下所示:
{
"archive": {
"A": {
"send": {
"vid": 338
}
"perm": {
"trrr": 323
}
"mod": {
"2016": 339
},
"B": {
"rate": {
"32K": 5414
}
"off": {
"Bleep": 466
}
"level": {
"1222": 466
}
}
}
任何帮助或推动正确的方向表示赞赏。谢谢!
编辑2:根据Farzad的回答。越来越接近。我试图对db_name,file_type和name进行分组。理想情况下,这将以导致我的JSON输出中没有方括号的方式完成。正在进行中:
$result = mysql_query($myquery);
if ( ! $result ) {
echo mysql_error();
die;
};
while ($row = mysql_fetch_assoc($result)) {
$outp[$row["file_type"]][] = array(
$row["name"] => array($row["value"] => $row["count"])
);
}
$result = array('archive' => $outp);
echo json_encode($result);
编辑3 这就是诀窍:
while ($row = mysql_fetch_assoc($result)) {
$outp[$row["file_type"]][$row["name"]][] = array(
array($row["value"]=> $row["counts"])
);
}
$result = array('original' => $outp);
echo json_encode($result);
答案 0 :(得分:1)
你需要这样的东西:
编辑:我也看到你也做某种组,添加[]!它会工作,但是,你需要把所有" A"列表中的数据
while ($result->fetch()) {
$outp[$file_type][] = array(
$name => array($value=> $count)
);
}
$result = array('archive' => $outp);
echo json_encode($result);
这是一个测试
$file_type = 'type';
$name = 'name';
$count = 'cont';
$value = 'value';
$outp= array();
$outp[$file_type][] = array(
$name => array($value=> $count)
);
echo json_encode($outp);