我有一个通用的SQL查询生成器,它为我提供了具有以下列的统一表:
Name, Name2, Amount
查询以GROUP BY Name2, Name
结束。
现在,我想让它适合转换成具有以下格式塔的JSON:
{dim2: Name2, data: [{label: Name, y: Amount},{label: Name, y: Amount},{label: Name, y: Amount},...]},
{dim2: Name2, data: [{label: Name, y: Amount},{label: Name, y: Amount},{label: Name, y: Amount},...]},
{dim2: Name2, data: [{label: Name, y: Amount},{label: Name, y: Amount},{label: Name, y: Amount},...]},
{dim2: Name2, data: [{label: Name, y: Amount},{label: Name, y: Amount},{label: Name, y: Amount},...]},
...
到目前为止,我做了这个:
while($result = mysqli_fetch_array($results))
{
if(!isset($return[$result['Name2']]))
$return[$result['Name2']] = array();
$return[$result['Name2']][] =
array(
'Label' => $result['Name'],
'y' => $result['Anzahl']
);
}
$filestring = json_encode($return, JSON_NUMERIC_CHECK);
这行不通。一整天都在做这件事真的很烦人,我真的很感激现在的帮助,提前谢谢!!!
更新:
以下是迄今为止它的计算示例:
[{"dim2":"Consumer Entertainment","data":{"Label":"Entertainment","y":1}},
{"dim2":"Digital Life","data":{"Label":"Electronic Devices","y":1}},
{"dim2":"Digital Life","data":{"Label":"Entertainment","y":1}},
{"dim2":"Digital Life","data":{"Label":"Financial Services","y":2}},
{"dim2":"Digital Life","data":{"Label":"IT","y":2}},
{"dim2":"Digital Life","data":{"Label":"Media & Publishing","y":1}},
{"dim2":"Digital Life","data":{"Label":"Transportation & Mobility","y":1}},
{"dim2":"Healthy Life","data":{"Label":"Fashion & Accessories","y":1}},
...]
我想要:
[{"dim2":"Consumer Entertainment","data":[{"Label":"Entertainment","y":1}]},
{"dim2":"Digital Life","data":[{"Label":"Electronic Devices","y":1},
{"Label":"Entertainment","y":1},
{"Label":"Financial Services","y":2},
{"Label":"IT","y":2},
{"Label":"Media & Publishing","y":1},
{"Label":"Transportation & Mobility","y":1}]},
{"dim2":"Healthy Life","data":[{"Label":"Fashion & Accessories","y":1}]},
...]
依此类推
现在更容易理解了:)
$ar = array('Label'=>'Entertainment', 'y'=>1);
$q[]=array('dim2'=>'Consumer Entertainment', 'data'=>array($ar));
$ar = array('Label'=>'Electrodivices', 'y'=>1);
$q[]=array('dim2'=>'Digital Life', 'data'=>array($ar));
$ar = array('Label'=>'Entertainment', 'y'=>2);
$q[]=array('dim2'=>'Digital Life', 'data'=>array($ar));
echo json_encode($q);
它发出
〔{"dim2":"消费娱乐","数据":〔{"Label":"娱乐","y":1}〕},
{"dim2":"数字生活","数据":〔{"Label":"Electrodivices","y":1}〕},
{"dim2":"数字生活","数据":〔{"标签":"娱乐","y":2}〕}〕
所以,也许你应该试着写一些类似的东西
$return[$result['Name2']][] =
array(array(
'Label' => $result['Name'],
'y' => $result['Anzahl']
));
它看起来多么愚蠢。可能是它不明白它在拿一个数组?:P