2017-09-25 153 views
-1

我想弄清楚为什么我不使用json_decode时返回任何数据。我试图获取有效的json文件中的值(是的,我测试了它)。当我尝试和使用:php json_decode不返回任何结果

foreach($json['designs']['filters'] as $filters) { 
    echo $filters['filterTypeName']; 
} 

我正在返回的值......这是伟大的,但我想踏踏实实地JSON文件的一个新的水平拉只值下“的价值观,每个阵列”。这里是从file_get_contents('url') JSON文件的结果:

{"designs": { 
    "filters" : 
     [ 
      { 
       "filterTypeName":"Year", 
       "filterProperty":"year", 
       "values": 
        [ 
         { 
          "name":"2018", 
          "value":"2018", 
          "sortvalue":"1" 
         }, 
         { 
          "name":"2017", 
          "value":"2017", 
          "sortvalue":"2" 
         }, (etc.) 

        ] 
      }, 
      { 
       "filterTypeName":"Division", 
       "filterProperty":"division", 
       "values": 
        [ 
         { 
          "name":"Resort-Apparel", 
          "value":"Resort-Apparel", 
          "sortvalue":"1" 
         }, 
         { 
          "name":"College-Apparel", 
          "value":"College-Apparel", 
          "sortvalue":"2" 
         }, (etc.) 

        ] 
      }, (etc.) 

基本上,我有我的窗体上的选择选项,核对上面列出的值返回符合条件的设计。

我该如何专门搜索一个选择组中的所有年份,然后再选择另一个选择组中的所有分部,以此类推?

感谢您的任何和所有的帮助!

+0

难道你不需要'foreach($ filters ['values']作为$ value)echo $ value-> name。$ value-> value。$ value-> sortvalue;'在你的foreach中? – jh1711

+0

标题与该问题不符。 –

回答

0

使用$json->designs-> filters就如其他人所说的访问过滤器,而非$json['designs']['filters']

0

尝试,除非真的被指定为第二个参数json_decode返回一个对象,那么你的选择要么是:

  1. 使用$json->designs->filters
  2. 或使用json_decode($json, true)
0

我用foreach($json['designs']['filters'][0]['values'] as $name)我忘了指定我尝试访问的数组的数量。