【发布时间】:2020-04-13 03:09:57
【问题描述】:
我正在尝试使用 PHP/PDO 从 MySQL 中提取数据并将其格式化为嵌套的 JSON 数组。
这是我得到的:
{
"host1": [
{
"vmnic_name": "vmnic0",
"switch_name": "switch1",
"port_id": "GigabitEthernet1\/0\/1"
},
{
"vmnic_name": "vmnic1",
"switch_name": "switch1",
"port_id": "GigabitEthernet1\/0\/2"
}
],
"host2": {
"2": {
"vmnic_name": "vmnic0",
"switch_name": "switch1",
"port_id": "GigabitEthernet1\/0\/3"
},
"3": {
"vmnic_name": "vmnic1",
"switch_name": "switch1",
"port_id": "GigabitEthernet1\/0\/4"
}
}
}
我想让它说“host_name”:“host1”等,而不仅仅是“host1”。对于第一个主机之后的主机,没有像第一个主机那样的“2”或“3”这样的数字。
这是我的代码:
$arr = array();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $key => $item) {
$arr[$item['host_name']][$key] = array(
'vmnic_name'=>$item['vmnic_name'],
'switch_name'=>$item['switch_name'],
'port_id'=>$item['port_id']
);
}
echo json_encode($arr, JSON_PRETTY_PRINT);
【问题讨论】:
-
我想让它说“host_name”:“host1”:您能否澄清一下预期的输出需要是什么?目前尚不清楚结构将如何。