访问从JSON转换的数组中对象的键值

时间:2018-03-24 23:26:00

标签: php arrays json

我有这个JSON字符串:

"Filters": [
   {"IsActive" : "1"},
   {"Gender" : "M"}
]

我正在转换为数组$filters。当我得到var_dump时:

array(2) {
  [0]=>
  array(1) {
    ["IsActive"]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    ["Gender"]=>
    string(1) "M"
  }
}

我正在尝试访问键/值对。密钥并不总是GenderIsActive。它们可以是任何有价值的东西。

 foreach ($filters as $key => $value) {
   echo "\nFilter: " . $key . " => " . $value;
 }

但它输出:

  

过滤器:Array =>数组
注意:数组到字符串   转换

为什么我无法访问k / v对?

2 个答案:

答案 0 :(得分:2)

你对阵列的看法不够深入。它实际上是一个数组数组,因此处理它的一种方法是使用另一个这样的foreach

foreach ($filters as $arr) {
    foreach ($arr as $key => $value) {
        echo "\nFilter: " . $key . " => " . $value;
    }
}

答案 1 :(得分:1)

由于这是一个数组数组,您应该遍历每个数组

foreach($filters as $index=>$filter) {
     foreach($filter as $key=>$value){
     //...
     }
}