将数组中的值循环到JS网格中


Loop values from array into JS grid

我一直在为这件事绞尽脑汁,似乎什么都不起作用,我不确定忽略了什么。

我有一个数组,我正在使用下面的$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函数!