isset或array_key_exists,检查数组键是否存在
2014-05-14 10:30
447 查看
今天在导出报表的时候遇到了一个问题,undefined index:pid,然后就纳闷了,我的数组里面根本就没有pid,为什么会出现这个错误呢,我遍历了一下数组,发现果然有pid这个键,奇怪呀,我有做检查呀,如果pid键存在,则释放这个键啊,看起来没有错啊,怎么回事?
下面来看看真正的原因:
我的检查代码是这样写的:
这样看起来有错吗?貌似没错,但是仍然没有释放掉pid这个键,所以就去官网查了一下:
isset — Determine if a variable is set and is not
现在大家明白了吧?isset:确定一个变量已经设置并且不为null,那这下就明白了,只有当$v['pid']已经存在且其值不为null时,isset才会返回true,而我上面的那个问题中,$v['pid']恰恰没有值,所以它就不会被释放掉。
所以呢,检查数组键是否存在,还是用array_key_exists吧。
鄙人浅陋,将此分享给遇到同样问题的童鞋们。
下面来看看真正的原因:
我的检查代码是这样写的:
if(isset($v['pid'])) unset($v['pid']);
这样看起来有错吗?貌似没错,但是仍然没有释放掉pid这个键,所以就去官网查了一下:
isset
(PHP 4, PHP 5)isset — Determine if a variable is set and is not
NULL
现在大家明白了吧?isset:确定一个变量已经设置并且不为null,那这下就明白了,只有当$v['pid']已经存在且其值不为null时,isset才会返回true,而我上面的那个问题中,$v['pid']恰恰没有值,所以它就不会被释放掉。
所以呢,检查数组键是否存在,还是用array_key_exists吧。
鄙人浅陋,将此分享给遇到同样问题的童鞋们。
相关文章推荐
- php isset 和 array_key_exists 检查数组中是否存在某值的区别
- PHP判断键值数组是否存在,使用empty或isset或array_key_exists
- PHP 检查给定的键名或索引是否存在于数组中 array_key_exists 函数
- [准确]判断PHP键值数组是否存在,使用empty或isset或array_key_exists
- PHP判断键值数组是否存在,使用empty或isset或array_key_exists(转)
- PHP判断键值数组是否存在,使用empty或isset或array_key_exists
- PHP判断键值数组是否存在,使用empty或isset或array_key_exists
- php-Arrays 函数-array_key_exists-检查给定的键名或索引是否存在于数组中
- PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
- php数组函数序列之array_key_exists() - 查找数组键名是否存在
- PHP判断某个数组中是否存在指定的key,函数array_key_exists()
- 【php数组函数序列】之array_key_exists() - 查找数组键名是否存在
- PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
- 浅谈PHP检查数组中是否存在某个值 in_array 函数
- PHP array_key_exists() 函数(判断某个数组中是否存在指定的 key)
- PHP 中数组函数 isset 效率比 array_key_exists 更高
- PHP检查一个数组内是否存在指定元素in_array
- 检查数组中是否存在某个值 php-数组函数in_array()
- 检查数组中是否存在某个值in_array(value,array,type)