douzhang3356 2016-03-11 18:18
浏览 27
已采纳

访问PHP json_encode中的嵌套值

I converted an array to JSON, how do I get the value of the slug from it?

{
  "230": {
    "term_id": 230,
    "name": "Executive Committee",
    "slug": "executive_committee",
    "term_group": 0,
    "term_taxonomy_id": 241,
    "taxonomy": "team_member_filter",
    "description": "",
    "parent": 0,
    "count": 1,
    "object_id": 1561,
    "filter": "raw"
  }
}

Of course the first value "230" is different for each instance. How do I access the "slug" value for each instance inside of my loop?

I originally had this array in $variable:

  Array ( 
   [230] => stdClass Object ( 
      [term_id] => 230
      [name] => Executive Committee 
      [slug] => executive_committee
      [term_group] => 0 
      [term_taxonomy_id] => 241 
      [taxonomy] => team_member_filter
      [description] =>
      [parent] => 0 
      [count] => 1 
      [object_id] => 1561 
      [filter] => raw 
   )   
)

Why does $variable['slug'] not return anything?

  • 写回答

1条回答 默认 最新

  • douben7260 2016-03-11 18:26
    关注

    Use json_decode() and then you can access like an array:

    $items = json_decode($variable, true); // 'true' here makes the json an associative array
    foreach($items AS $item) {
        echo $item['slug']; // because it is associative  you can access each value by name
    }
    

    This echos executive_committee for the JSON you provided above.


    From the original array ($variable)you would do the same thing:

    foreach($variable AS $item) {
        echo $item->slug; // because you have an object, not an array 
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?