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

访问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 
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装