我一直在为这件事绞尽脑汁,似乎什么都不起作用,我不确定忽略了什么。
我有一个数组,我正在使用下面的$output从(垃圾)API中提取,它看起来像:
Array
(
[title] => Servers
[servs] => Array
(
[0] => Array
(
[server_name] => localhost
[total_ram] => 15922
[ram] => 12844
[total_space] => 931
[space] => 263
[version] => 2.7.9
[numvps] => 4
[alloc_ram] => 5120
[alloc_space] => 45
[virts] => Array
(
[0] => kvm
)
)
[1] => Array
(
[server_name] => VS999
[total_ram] => 15922
[ram] => 5897
[total_space] => 1397
[space] => 974
[version] => 2.7.9
[numvps] => 4
[alloc_ram] => 10240
[alloc_space] => 200
[virts] => Array
(
[0] => kvm
)
)
在PHP中使用这个print_r可以很好地显示所有数据。
$output = $admin->servers();
print_r($output);
我正试图从该数组中提取特定的值,并将它们循环到一个网格中(使用vue.js),它看起来像这样:
{ Node: 'vs999', Disk_Free: 974, Total_Disk: 1397, Disk_Free_Percent: 69, Free_RAM: 5897, Total_RAM: 15922, Free_RAM_Percent: 37, VMs: 4, Version: '2.7.9' },
有什么简单的方法可以做到这一点吗?我尝试过从数组本身打印单个值,如"server_name",但我甚至无法做到这一点——无论我尝试什么,都只是一个空白页。
// Call API to get servers
$rawData = $admin->servers();
// Data mapping
$map = [
'server_name' => 'Node',
'space' => 'Disk_Free',
'total_space' => 'Total_Disk',
];
// Remap data
$data = [];
foreach ($rawData['servs'] as $row) {
$item = [];
foreach ($map as $from => $to) {
$item[$to] = $row[$from];
}
$data[] = $item;
}
// encode JSON
$json = json_encode($data);
// Done and done
echo $json;
这似乎非常接近我所需要的,感谢您的错误报告和json_encode函数!