的array_key_exists()
函数确定是否存在数组中指定的键,如果键存在,返回真,否则返回假
array_key_exists(关键,阵列);
关键是规定。
数组:有必要。指定
输入的数组。
< PHP
美元=阵列(A = > 'dog,B = >里的);
如果(array_key_exists('a',$)){
echo'key存在!;
别的{ }
echo'key不存在!;
}
>
输出:键存在!
为什么比array_key_exists in_array更快
array_key_exists和in_array
查询是不同的
array_key_exists确定是否有一个
核心价值
(一array_key_exists,ARR)->如果(isset(ARR {一}))是真的
和in_array需要遍历遍历价值跳出循环
查询:
无论是一个数组的索引有一个单独的存储单元,并
优化,时间复杂度是O(1),array_key_exists和in_array是O(N)。
追寻与回答:
这就是重复杂合性的
方法。
array_key_exists是确定键是否有价值
in_array必须遍历一次,得到同样的事情,不知道如何建立
在PHP
设置和array_key_exists之间的差异
1。数组中的价值判断,为空值或假,isset返回FALSE,返回真,array_key_exists;
2。
执行效率是不同的,定是一个内置的运营商,array_key_exists是内置函数,PHP,isset更快。
参考:PHP的
功能原理及
性能分析
三.当设置用于访问的值不在索引数组存在,它不会导致e_notice PHP的
错误信息;
4.array_key_exists称get_defined_vars确定数组变量的存在,问题是没有用的;
测试代码:
< PHP
功能
microtime_float()
{
列表(USEC美元美元,SEC)=爆炸(
返回((浮动)$ USEC +(浮动)$秒);
}
test_arr美元{ 'AA' } = 'dd;
test_arr美元{ 'BB' } =;
test_arr美元{ 'cc} = null;
test_arr美元{ 'dd} = false;
test_arr美元=阵列(AA= > 'dd,'BB' = >,'cc= >无效,'dd= >假);
回声isset AA;var_dump(isset($ test_arr { 'AA' }));echoN;
回声isset BB;var_dump(isset($ test_arr { 'BB' }));echoN;
回声isset CC;var_dump(isset($ test_arr { 'cc ' }));echoN;
回声时,DD是;var_dump(isset($ test_arr { 'cc ' }));echoN;
回声时,没有;var_dump(isset($ test_arr {不关' }));echoN;
回声key_exist AA;var_dump(array_key_exists(AA,test_arr美元));回声N;
回声key_exist BB;var_dump(array_key_exists('BB',test_arr美元));回声N;
回声key_exist CC;var_dump(array_key_exists('cc,test_arr美元));回声N;
回声key_exist DD;var_dump(array_key_exists('dd,test_arr美元));回声N;
回声key_exist没有;var_dump(array_key_exists(不关,test_arr美元));回声N;
time_start美元= microtime_float();
($ i = 0;$ i < 100;$ + +){
isset($ test_arr {AA});
}
time_end美元= microtime_float();
时间time_end美元美元美元time_start;
回声设置100美元的时间;
($ i = 0;$ i < 10000;$ + +){
isset($ test_arr {AA});
}
time_end美元= microtime_float();
时间time_end美元美元美元time_start;
回声设置10000美元的时间;
($ i = 0;$ i < 1000000;$ + +){
isset($ test_arr {AA});
}
time_end美元= microtime_float();
时间time_end美元美元美元time_start;
回声设置1000000美元的时间;
/ / ++++++++++++++++++++++++++++++
time_start美元= microtime_float();
($ i = 0;$ i < 100;$ + +){
array_key_exists(AA,test_arr美元);
}
time_end美元= microtime_float();
时间time_end美元美元美元time_start;
100美元array_key_exists回波时间;
($ i = 0;$ i < 10000;$ + +){
array_key_exists(AA,test_arr美元);
}
time_end美元= microtime_float();
时间time_end美元美元美元time_start;
10000美元array_key_exists回波时间;
($ i = 0;$ i < 1000000;$ + +){
array_key_exists(AA,test_arr美元);
}
time_end美元= microtime_float();
时间time_end美元美元美元time_start;
1000000美元array_key_exists回波时间;