Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php json编码,json解码,数组?_Php_Json - Fatal编程技术网

Php json编码,json解码,数组?

Php json编码,json解码,数组?,php,json,Php,Json,我正试图从中获取数据 { "data": [{ "media_count": 3045, "name": "snow", }, { "media_count": 79, "name": "snowman", }, { "media_count": 40, "name": "snowday", }, { "media_count":

我正试图从中获取
数据

{
    "data": [{
        "media_count": 3045,
        "name": "snow",
    },
    {
        "media_count": 79,
        "name": "snowman",
    },
    {
        "media_count": 40,
        "name": "snowday",
    },
    {
        "media_count": 29,
        "name": "snowy",
    }]
}
我一直在尝试,使用:

$obj = json_decode($res[0], true);
echo $obj['data']; //this returns an array
我也试过:

$obj = json_encode($res[0], true);
echo $obj; // this returns json, but not inside `data`

"data": [{
"media_count":54373,
"name":"test"
}]
我只想进入
数据
。我该怎么做

提前谢谢

更新:很抱歉提及,我想要json格式的

最终,我只想看到

{
    "media_count":54373,
    "name":"test"
}

类似于thiat的内容在第一个示例中,
$obj['data']
返回一个数组,因为JSON就是这样设置的。根据JSON,数据是元素的集合

要在阵列内访问,可以执行以下操作:

foreach($obj['data'] as $object) {
    print_r($object);
}
您还可以根据需要将其编入索引:

$obj = json_decode($res[0], true);
echo json_encode($obj['data']);
print_r($obj['data'][0])

编辑

如果我没有弄错,您希望将第一个JSON转换为:

"data": [{
"media_count":54373,
"name":"test"
}]

如果是这样,那是不可能的,因为第二个片段不是有效的JSON。(使用)

首先访问json数组的数据项

    $obj1=$obj[item];
    $sizeobj=sizeof($obj1);

    for($i=0;$i<$sizeobj;$i++)
{
// your code to access the data items
// for eg $obj[item][$i][media_count}
}
$obj1=$obj[项目];
$sizeobj=sizeof($obj1);
对于($i=0;$i使用
json\u encode()
获取所需内容:

$obj = json_decode($res[0], true);
echo json_encode($obj['data']);

因此,如果我尝试
$obj1=$obj['data']
,我会得到这个
$obj1不是访问它只是为了找到“数据”的大小,我只想索引到
数据
,所以本质上,当你回显新的json时,
数据
不应该在那里。在这种情况下,在
json\u decode
之后,做
$obj=$obj['data']
$obj
现在保存您想要的内容。顺便说一句,您原来的JSON由于后面有逗号而无效。