【发布时间】:2019-10-15 15:56:08
【问题描述】:
我正在努力从 mysqli 结果集中获得正确的 json 数组格式。我已经广泛搜索并尝试了不同的东西。
我正在查询电子商务订单并尝试以 JSON 格式输出它们以发布到应用程序,以应用程序开发人员指定的 JSON 格式。
第一次尝试这个,分别输出每一行,不是我想要的:
while ( $row = $result->fetch_assoc()) {
$orders[]=$row;
}
echo json_encode($orders, JSON_PRETTY_PRINT);
结果是
[
{
"WebOrderNumber_C": "938276",
"itemName": "B3440S"
},
{
"WebOrderNumber_C": "938276",
"itemName": "D5035G"
},
{
"WebOrderNumber_C": "938276",
"itemName": "D6015"
}
]
第二次再次谷歌搜索并在这里阅读其他问题,我尝试了这个
while ( $row = $result->fetch_assoc()) {
$orders[$row['WebOrderNumber_C']][] = $row['itemName'];
}
echo json_encode($orders, JSON_PRETTY_PRINT);
结果是
{
"938276": [
"B3440S",
"D5035G",
"D6015"
]
}
我想要实现的格式是这样的。请帮忙
{
"WebOrderNumber_C": "938276",
"shipAddress": {
"add1": "LONDON"
},
"items": [{
"itemName": "B3440S"
},
{
"itemName": "B3440S"
},
{
"itemName": "B3440S"
}
]
}
PS 如果相关,我正在使用 PHP 5.6.30。
【问题讨论】:
-
收货地址来自哪里?
-
@barmar 很抱歉造成混乱,它是 mysqli 结果集中的另一个字段。到目前为止,我还没有开始将它包含在我的实验中,但它达到了预期的结果。如果有人原则上可以帮助我在其他元素上做错了什么,我怀疑我也可以推断它来处理送货地址。我希望:-)