在PHP中的另一个数组中打印数组的JSON键

时间:2018-05-25 07:05:47

标签: php json parsing

我有以下 JSON 代码:

{
   "google.com": {
        "clicks": 23,
        "browsers": {
            "Chrome": 19,
            "Mozilla": 2,
            "Safari": 1
        }
    },
    "mcnitro.net": {
        "clicks": 87,
        "browsers": {
            "Chrome": 19,
            "Mozilla": 2,
            "Safari": 1
        }
    }
}

我正在努力在文档页面上打印数组'姓名和他们的孩子。 到目前为止,我已经尝试了以下 PHP 代码:

<?php
    header("Content-type: text/javascript");
    $jsonString = file_get_contents('stats.json');
    $data = json_decode($jsonString, true);
    foreach($data->children() as $domain) {
        echo $data[$domain];
        foreach($data[$domain] as $value) {
            echo $value['clicks'];
        }
    }
?>

但是,我在error_log

中遇到了一个问题
PHP Fatal error:  Call to a member function children() on array in /home/gamin167/public_html/ads/engine/300x250/gen.js.php on line 5

希望得到的结果是&#34; google.com&#34;和&#34; mcnitro.net&#34;打印,以及他们的&#34;点击&#34;属性。

任何提示或建议都将受到高度赞赏!提前谢谢!

2 个答案:

答案 0 :(得分:0)

您将字符串解码为true的数组,但您似乎尝试将其用作对象 也没有必要循环两次。

foreach($data as $key => $domain) {
    echo $key . "\n";
    echo $domain['clicks'] . "\n\n";

}

输出:

google.com
23

mcnitro.net
87

https://3v4l.org/D7FCY

答案 1 :(得分:0)

您无法使用->children()$data是包含json数据的数组,您可以使用foreach获取keyvalue,例如foreach ($data as $key => $value)

所以在这里,要获取您的域名,请执行以下操作:

<?php
    header("Content-type: text/javascript");
    $jsonString = file_get_contents('stats.json');
    $data = json_decode($jsonString, true);
    foreach($data as $domain => $value) {
        echo $value['clicks'];
    }
?>