49

可能重复:
如何检查数组元素是否存在?

如果我错了,我很抱歉,我是 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提前谢谢

4

2 回答 2

89

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

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

array_key_exists即和之间的区别isset在于

$json = {"user_id": null}

array_key_exists将返回trueisset将返回false

于 2012-04-16T14:47:29.160 回答
36

你可以试试array_key_exists

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

if(array_key_exists('user_id', $mydata)) {
    //key exists, do stuff
}
于 2012-04-16T14:44:35.630 回答