一个节日有多个舞台。多个艺术家在一个舞台上表演。
这是我的 Mysql 结果:
通过该 sql 请求,我想在 PHP 中创建一个具有以下结构的 json 对象:
{
"name": "mainstage",
"artists": [
{
"name": "Gregori Klosman"
},
{
"name": "Tristan Garner"
},
{
"name": "Glow In The Dark"
},
{
"name": "Jaxx Da Fishworks"
}]
},
{
"name": "Dim Mak",
"artists" : [
{
"name": "Albin Myers"
}
]
}
我尝试使用以下脚本执行此操作,但结构略有不同,因为我有一个 ID 来标识阶段。
$stages = array();
while($result_stages = $query_stages -> fetch()) {
$artist = array("name" => $result_stages["artist_name"]);
array_push($stages[$result_stages["stage_id"]]["artists"], $artist);
}
echo json_encode($stages);
有什么想法吗?我可以使用多个 mysql 请求和 php 循环来实现,但我觉得这不是最正确的方法。感谢您的回答!
最佳答案
我已经尝试过这样...
$sql="select stage_name from [table_name] group by stage_name";
$result=mysql_query($sql);
$arr = array();
$i=0;
while($row=mysql_fetch_array($result))
{
$arr[$i]['name']=$row[0];
$sql2="select artist_name from [table_name] where stage_name='".$row[0]."'";
$result2=mysql_query($sql2);
$arr2=array();
while($row2=mysql_fetch_array($result2))
{
array_push($arr2,$row2[0]);
}
$arr[$i]['artist'] = $arr2;
$i++;
}
echo json_encode($arr);
关于php - 如何从多个相似的行mysql结果创建复杂的结构化json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17011009/