使用php

时间:2018-03-31 21:04:09

标签: php json

我知道这个问题已经被问到了,但我的机智已经结束了,无法弄明白这一点。

我有一个如下所示的json文件:

{
"objects": [
    {
        "url": "http://whatever",
        "name": "whatever"
    },
    {
        "url": "http://anything",
        "name": "anything"
    }
] }

在我的PHP文件中,我有这个:

    // Read JSON file
$json = require('blogtest.json');

//Decode JSON
$arr = json_decode($json,true);

// Loop through Object

if (is_array($arr) || is_object($arr))
{
    foreach ($ar as $arr)
    {
        echo $ar["objects"]["name"] + "<br>";
    }
}

而不是打印名称值 - 它打印整个json文件。我已经尝试过改变过滤器,用不同的方式写出来,而我只是不能让json做我想做的事。

有没有办法让这个打印出两个“名字”值?!

2 个答案:

答案 0 :(得分:0)

require替换为file_get_contentsrequire的作用是包含文件,而不是返回文件的内容。

然后你可以用

循环这些项目
foreach($ar["objects"] as $item) {
    // $item['name'];
}

答案 1 :(得分:0)

您的foreach循环错误。

foreach块应写为:

foreach ($arr['objects'] as $ar) {
    echo $ar["name"] . '<br />';
}

另外,请使用file_get_contents代替require