【问题标题】:array_key_exists() produces no output.array_key_exists() 不产生任何输出。
【发布时间】:2017-02-03 21:16:12
【问题描述】:

我正在尝试检查我的数组中的特定键是否存在,如果存在则将其值打印出来。我尝试执行下面的代码,但它没有打印出任何内容

    $json = json_decode($result, true);

if (array_key_exists('genre', $json)){  
print ("Genre: ".$json[0]['genre']."<br/>");  
    }

foreach($json[0]['types'] as $key2 => $values2) {
     if (array_key_exists('types', $values2)){
        print ("Types: Album type: ".$values2."<br/>");
    }

}

刚刚进入 php,所以我不太确定我的代码有什么问题。将不胜感激我能得到的所有帮助。干杯

【问题讨论】:

  • 你的数组结构是什么样子的(print_r($json);)?
  • 如果你的$json数组是数字索引的,我想里面没有genre键。
  • 所以你在一个明显有数字键($json[0]['genre'])的数组中寻找键genre。

标签: php array-key


【解决方案1】:

由于您试图通过访问数组的第一个元素 ($json[0]) 来打印结果,因此您显然是在测试错误的数组。 array_key_exists() 不会递归检查嵌套数组,因此您必须使用嵌套数组。尝试检查

array_key_exists('genre', $json[0])

或类似的东西

foreach($json as $jsonArray) {
    if(array_key_exists('genre', $jsonArray)) {
        ....
    }
}

【讨论】:

  • 您说得对。不敢相信我没看到。谢谢老哥
猜你喜欢
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多