如何在php脚本中打印特定的json数组值?

史密斯

我有一个看起来像这样的 json 数组:

{"server-host-01":{"API":"Good","JETS":"Good","HTTPD":"Good","DISK":"23% Used","CPU":"WARNING: Avg idle at: 98% "},"server-host-02":{"DISK":"18% Used","CPU":"Avg idle at: 99% "}}

我有一个键,然后在该键中的另一个键:值数组,然后是另一个具有相同键:值设置的键。

在我的 php 脚本中,我将 json 文件分配给 $files 的变量,然后使用 json_decode 将其转换为 php 数组(我认为)

$files = (my_json_file.json);
    $string = file_get_contents($file);
    $json_a = json_decode($string, true);

现在我在 php 中有数组,我想打印主键,然后打印键的键:值。他们将进入一个 html 表,但在我担心 html 部分之前,我特别在寻找帮助打印出我需要的值。

最大限度

查看 JSON 内容

您有一个 JSON 编码的数组,其中包含两个数组,如下所示(我通过此链接获得):

array (
  'server-host-01' => 
  array (
    'API' => 'Good',
    'JETS' => 'Good',
    'HTTPD' => 'Good',
    'DISK' => '23% Used',
    'CPU' => 'WARNING: Avg idle at: 98% ',
  ),
  'server-host-02' => 
  array (
    'DISK' => '18% Used',
    'CPU' => 'Avg idle at: 99% ',
  ),
)

如果您想查看与 server-host-01 有关的所有值,您可以执行例如

var_dump($json_a['server-host-01']);

如果您只想要 CPU 状态,您可以执行例如

$server_host_01_CPU_Status = $json_a['server-host-01']['CPU']; var_dump($server-host-01-CPU-Status);

示例代码

这是上述操作的示例:

<?php

    $json = json_decode('{"server-host-01":{"API":"Good","JETS":"Good","HTTPD":"Good","DISK":"23% Used","CPU":"WARNING: Avg idle at: 98% "},"server-host-02":{"DISK":"18% Used","CPU":"Avg idle at: 99% "}}');

    $server_host_01_CPU_Status = $json['server-host-01']['CPU'];

    var_dump($server_host_01_CPU_Status);

    foreach($json['server-host-02'] as $key => $value)
    {
        var_dump("$key = $value");
    }

?>

其他注意事项

您的行$files = (my_json_file.json);是无效的 PHP。我不是 100% 确定您要实现的目标,但首先:

1)my_json_file.json没有用引号括起来,因此 PHP 将其视为常量变量而不是字符串(这也会引发错误 - 打开 PHP 服务器错误以查看它)

2) 不带引号的字符串my_json_file.json用括号括起来,在这种情况下它甚至不做任何事情。

假设你真正想要的是一个文件名数组,然后打开你会想要这样的东西:

$files = ['my_json_file.json'];
foreach($files as $file)
{
    $contents = file_get_contents($file);
    $json = json_decode($contents, true);
    // foreach($json as $key => $value) { ...
}

我强烈建议您查看本教程,了解有关在 PHP 中处理 JSON 数据的基础知识。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章