我想弄清楚为什么我在使用json_decode时没有返回任何数据。我正在尝试获取有效json文件中的值(是的,我测试过它)。当我尝试使用时:
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 :(得分:0)
尝试使用$json->designs-> filters
来访问过滤器而不是$json['designs']['filters']
答案 1 :(得分:0)
正如其他人所说,json_decode返回一个对象,除非将true指定为第二个参数,因此你的选项是:
$json->designs->filters
json_decode($json, true)
答案 2 :(得分:0)
我使用foreach($json['designs']['filters'][0]['values'] as $name)
我忘了指定我试图访问的数组的编号。