我一直在抨击我的大脑,似乎什么都没有用,我不确定是什么被忽视了。
我有一个数组,我使用下面的$ 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”但是我甚至无法工作 - 无论我尝试什么,都只是一个空白页。
答案 0 :(得分:0)
// 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函数!