【问题标题】:How to get the values from JSON Array Stored as Value in JSON using PHP?如何使用 PHP 从存储为 JSON 中的值的 JSON 数组中获取值?
【发布时间】:2017-04-20 08:31:00
【问题描述】:
`{
    "student": [{
        "name": "Alice",
        "rno": "187654"
    }]
}`

我正在尝试使用 PHP 代码获取 rno 的值

`$data = json_decode($json, true);
 foreach ($data as $item) {
    $name = $item['name'] ;
    $number= $item['rno'] ;
}`

【问题讨论】:

标签: php arrays json foreach nested


【解决方案1】:

@Sahil Gulati 的代码在 php 中解析 json 的方式更加完美和正确

这里是另一种在php中解析json数据的方法

<?php

$data = json_decode($json, true);

foreach ($data as $item) {
    foreach ($item as $val) {
        echo $name = $val['name'];
        echo $number = $val['rno'];
    }
}

 ?> 

我分享的上述代码您可以轻松理解。但是在学习了如何在 php 中解析 json 数据之后,你应该使用@Sahil Gulati 的方法。

【讨论】:

    【解决方案2】:

    将其更改为:

    foreach ($data as $item)
    

    这个:

    foreach ($data["student"] as $item)
    

    Try code snippet here

    PHP 代码:

    <?php
    
    ini_set('display_errors', 1);
    $data = json_decode($json, true);
    foreach ($data["student"] as $item)
    {
        $name = $item['name'];
        $number = $item['rno'];
    }
    

    【讨论】:

      【解决方案3】:

      您应该仔细查看 json 编码数据的结构。这有助于实现干净的迭代:

      <?php
      $input = <<<JSON
      {
          "student": [{
              "name": "Alice",
              "rno": "187654"
          }]
      }
      JSON;
      $data = json_decode($input);
      $output = [];
      array_walk($data->student, function($entry) use (&$output) {
          $output[] = $entry->rno;
      });
      print_r($output);
      

      上面代码的输出显然是:

      Array
      (
          [0] => 187654
      )
      

      已选择输出格式为数组,因为 json 结构表明可以包含 多个 学生。


      如果您只对student数组中第一个条目的rno属性感兴趣,那么您可以直接访问它:

      <?php
      $input = <<<JSON
      {
          "student": [{
              "name": "Alice",
              "rno": "187654"
          }]
      }
      JSON;
      $data = json_decode($input);
      var_dump($data->student[0]->rno);
      

      该变体的输出显然是:

      string(6) "187654"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-08
        • 2014-10-15
        • 2021-06-17
        相关资源
        最近更新 更多