如何知道Json字符串中是否存在密钥

时间:2012-04-16 14:42:23

标签: php codeigniter

  

可能重复:
  How to check if an array element exists?

道歉,如果我错了,我是PHP的新手,有没有办法在PHP中使用Json函数解码后找出密钥是否存在于json_decode字符串中。

$json = {"user_id":"51","password":"abc123fo"};

简要说明:

$json = {"password":"abc123fo"};
$mydata = json_decode($json,true);
user_id = $mydata['user_id'];

如果json字符串不包含user_id,它会抛出像Undefined index user_id这样的异常,所以有没有办法检查Json字符串中是否存在密钥,请帮助我,我正在使用PHP 5.3 and Codeigniter 2.1 MVC提前致谢

2 个答案:

答案 0 :(得分:56)

如果您还想检查值是否为null,您可以使用isset

if( isset( $mydata['user_id'] ) ){
   // do something
}

即。 array_key_existsisset之间的区别在于

$json = {"user_id": null}

array_key_exists将返回true,而isset将返回false

答案 1 :(得分:27)

您可以尝试array_key_exists

它返回一个布尔值,因此您可以搜索它:

if(array_key_exists('user_id', $mydata)) {
    //key exists, do stuff
}