从PHP和MySQL转换为JSON
我需要帮助从我的数据库中获取以下输出从PHP和MySQL转换为JSON,php,mysql,arrays,json,Php,Mysql,Arrays,Json,我需要帮助从我的数据库中获取以下输出 { "CustomerAddress":[ { "customer_address_id":"101", "address_category_name":"Other", "address_name":"Nasser Vocational Training Center, Jao", "Details":[ { "a
{
"CustomerAddress":[
{
"customer_address_id":"101",
"address_category_name":"Other",
"address_name":"Nasser Vocational Training Center, Jao",
"Details":[
{
"address_details_id":"1",
"address_details_text":"ADD-101-1"
},
{
"address_details_id":"2",
"address_details_text":"ADD-101-1"
}
]
},
{
"customer_address_id":"109",
"address_category_name":"Other",
"address_name":"Nasser Vocational Training Center, Jao",
"Details":[
{
"address_details_id":"7",
"address_details_text":"ADD-101-2"
}
]
}
]
}
每个CustomerAddress都有一个或多个详细信息。我在下面尝试过,但正如您在这里看到的,它重复了各个部门:
customer\u address\u id 101有四个细节,它们应该在CustomerAddress下,但它只是重复而已
以下是我的PHP:
$jsonData = array();
while ($mysql_row = $mysql_query->fetch())
{
$jsonData[] = array(
'CustomerAddress' =>
array('customer_address_id' => $mysql_row['customer_address_id'],
'address_category_name' => $mysql_row['address_category_name'],
'address_name' => $mysql_row['address_name'],
'Details' => array(
'address_details_id' => $mysql_row['address_details_id'],
'address_details_text' => $mysql_row['address_details_text'])
)
);
}
请帮忙
谢谢
Jassim
echo json_encode($jsonData)
您正在为每一行向$jsonData
添加一个新条目。如果它与前一行具有相同的customer\u address\u id
,则只需将其追加到Details
数组中,而不是创建另一行。请参见我如何将其应用于mysql$结果=[];foreach($MainArray作为$record){$result[$record['Machine_Name']][=$record;}echo';打印(结果);在我所链接的问题中循环数组和循环查询结果之间没有什么区别。您应该能够使用相同的逻辑。我尝试了所有方法,但都没有成功:(echo json_encode($jsonData)
您正在为每一行向$jsonData
添加一个新条目。如果它与前一行具有相同的customer\u address\u id
,您应该只是将其添加到Details
数组,而不是创建另一行。请参阅bu如何将其应用于mysql?$result=[];foreach($MainArray as$record){$result[$record]['Machine\u Name'][]=$record;}echo'';print\r($result);在我链接的问题中循环数组与循环查询结果之间没有什么区别。您应该能够使用相同的逻辑。我尝试了所有方法,但从未为我工作过:(