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

时间:2015-12-03 23:26:16

标签: javascript php arrays

我一直在抨击我的大脑,似乎什么都没有用,我不确定是什么被忽视了。

我有一个数组,我使用下面的$ 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”但是我甚至无法工作 - 无论我尝试什么,都只是一个空白页。

1 个答案:

答案 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函数!