【问题标题】:Read and print json array in php在php中读取和打印json数组
【发布时间】:2017-05-07 17:36:22
【问题描述】:

我有一个如下所示的 JSON 数组。我只想打印名称的值。但是我得到了未定义的索引名称并获得了 name 的值。下面是我的 json。

[{"docId":{"id":"57dd70252a896558e573a0c8"},"docProfile":{"name":"gowtham","gender":null,"email":null,"mobile":"7406339908"},"docLocalInfo":{"username":"gowtham","otp":934343,"newPasswordToken":null,"tempMobile":"","adminVerfiy":null},"privateInfo":{"mciNumber":null,"aadharNumber":null,"panNumber":null},"tempHospitals":[],"bankInfo":null,"signupSteps":{"accountCreated":true,"otpValidated":true},"notification":null,"hospitals":[],"address":null}]

我的代码

foreach($doc_array as $data => $mydata)
    {
          foreach($mydata as $key=>$val)
          {
              echo $val['name'];
          }
    }

如何从 docProfile 中获取 name 的值?任何帮助将不胜感激

【问题讨论】:

标签: php json foreach


【解决方案1】:

在您的 foreach 中,您不需要再次循环,因为 docProfile 是 json 对象数组的索引

只需简单的访问它

echo $mydata['docProfile']['name'].'<br>';

所以你的 foreach 会是这样的

foreach($doc_array as $data => $mydata) {
    echo $mydata['docProfile']['name'].'<br>';
}

Demo

【讨论】:

    【解决方案2】:
    <?php
        $json_str='[{"docId":{"id":"57dd70252a896558e573a0c8"},"docProfile":{"name":"gowtham","gender":null,"email":null,"mobile":"7406339908"},"docLocalInfo":{"username":"gowtham","otp":934343,"newPasswordToken":null,"tempMobile":"","adminVerfiy":null},"privateInfo":{"mciNumber":null,"aadharNumber":null,"panNumber":null},"tempHospitals":[],"bankInfo":null,"signupSteps":{"accountCreated":true,"otpValidated":true},"notification":null,"hospitals":[],"address":null}]';
    
        $json_arr = (array)json_decode($json_str,true);
        foreach($json_arr as $iarr => $ia)
        {
            foreach($ia["docProfile"] as $doc => $docDetails)
            {
                if($doc =="name")
                {
                    echo $ia["docProfile"]["name"];
                }
            }
        }
    ?>
    

    这段代码给你答案

    【讨论】:

      【解决方案3】:

      这个数组只有一行,但如果你的数组有更多行,你可以使用它; 您首先需要解码 JSON。

      $doc_array =json_decode($doc_array ,true);
      
      foreach($doc_array as $key=> $val){
           $val['docProfile']['name']  
      }
      

      【讨论】:

        【解决方案4】:

        尝试这样的事情。

        <?php
        $string = '[{"docId":{"id":"57dd70252a896558e573a0c8"},"docProfile":{"name":"gowtham","gender":null,"email":null,"mobile":"7406339908"},"docLocalInfo":{"username":"gowtham","otp":934343,"newPasswordToken":null,"tempMobile":"","adminVerfiy":null},"privateInfo":{"mciNumber":null,"aadharNumber":null,"panNumber":null},"tempHospitals":[],"bankInfo":null,"signupSteps":{"accountCreated":true,"otpValidated":true},"notification":null,"hospitals":[],"address":null}]';
        
        $arr = json_decode($string, true);
        echo $arr[0]['docProfile']['name'];
        ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-11-22
          • 1970-01-01
          • 2020-12-03
          • 1970-01-01
          • 2017-10-20
          • 2017-12-30
          • 1970-01-01
          相关资源
          最近更新 更多