PHP判断某个数组中是否存在指定的key

PHP利用array_key_exists()函数判断某个数组中是否存在指定的key,如果该key存在,则返回true,否则返回false。

$search = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search)) {
    $search['first']++;
}

值得注意的是,以上代码其实可以使用isset来实现:

$search = array('first' => 1, 'second' => 4);
if (isset($search['first'])) {
    $search['first']++;
}

使用isset的好处是isset的速度比array_key_exists()函数要快,因为isset不是函数,PHP能够像if else语句一样直接调用,而array_key_exists()的调用还需要查询PHP的函数库,搜索array_key_exists()函数比较耗时间。虽然如此,isset跟array_key_exists()函数比起来还是有缺陷的,例如:

$search = array('first' => null, 'second' => 4);

isset($search['first']); //返回false

array_key_exists('first', $search); //返回true

通过上面的例子可以看出$search[‘first’]如果等于null的时候,isset就无法发挥作用了。
因此,这两个函数的使用还得分场合,需要大家好好考虑。