Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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-foreach解析JSON数组_Php_Foreach_Json - Fatal编程技术网

用PHP-foreach解析JSON数组

用PHP-foreach解析JSON数组,php,foreach,json,Php,Foreach,Json,想知道为什么我的PHP代码不会显示JSON数据中“值”的所有“值”: $user = json_decode(file_get_contents($analytics)); foreach($user->data as $mydata) { echo $mydata->name . "\n"; } foreach($user->data->values as $values) { echo $values->value . "\

想知道为什么我的PHP代码不会显示JSON数据中“值”的所有“值”:

$user = json_decode(file_get_contents($analytics));
foreach($user->data as $mydata)
{
     echo $mydata->name . "\n";

}        
foreach($user->data->values as $values)
{
     echo $values->value . "\n";
}
第一个foreach可以正常工作,但第二个foreach会抛出错误

{
   "data": [
      {
         "id": "MY_ID/insights/page_views_login_unique/day",
         "name": "page_views_login_unique",
         "period": "day",
         "values": [
            {
               "value": 1,
               "end_time": "2012-05-01T07:00:00+0000"
            },
            {
               "value": 6,
               "end_time": "2012-05-02T07:00:00+0000"
            },
            {
               "value": 5,
               "end_time": "2012-05-03T07:00:00+0000"
            }, ...

您需要告诉它要使用
数据
中的哪个索引,或者对所有索引进行双循环

例如,获取外部数组中第四个索引中的值:

foreach($user->data[3]->values as $values)
{
     echo $values->value . "\n";
}
要完成所有:

foreach($user->data as $mydata)
{
    foreach($mydata->values as $values) {
        echo $values->value . "\n";
    }

}   

您可能希望执行以下操作:

foreach($user->data as $mydata)

    {
         echo $mydata->name . "\n";
         foreach($mydata->values as $values)
         {
              echo $values->value . "\n";
         }
    }        

$user->data
是一个对象数组。数组中的每个元素都有一个
名称
属性(以及其他属性)

尝试将第二个
foreach
放在第一个内

foreach($user->data as $mydata)
{
    echo $mydata->name . "\n";
    foreach($mydata->values as $values)
    {
        echo $values->value . "\n";
    }
}

怎么了?告诉我们输出是什么。
$user->data
是数组吗?因为您使用foreach来处理它。错误是:警告:为foreach()提供的参数无效$用户->数据显示为[0]的数组;这就是我要找的!奇怪,我想我已经试过了,谢谢。非常感谢。这就是我要找的!简单而优雅的解决方案:)是的,谢谢@Rocket这就是我需要的,乔纳斯首先回答=p@ToddN:该死,被76秒击败:-P