Summary of php array function array_key_exists
Jul 29, 2016 am 09:10 AMThe
array_key_exists() function determines whether the specified key exists in an array. If the key exists, it returns true, otherwise it returns false
array_key_exists(key, array);
key: required. Specifies key name
array: required. Specifies the input array
<?php $a = array('a'=>'Dog','b'=>'Cat'); if(array_key_exists('a',$a)){ echo 'Key exists!'; } else{ echo 'Key does not exist!'; } ?>
Output: Key exists!
Why is array_key_exists faster than in_array?
array_key_exists and in_array query different things, right?
array_key_exists determines whether there is a key value
array_key_exists(a,arr)->if(isset(arr[a])) is true
And in_array needs to traverse the value traversal Break out of the loop when it arrives
Question:
Is the index of the array a separate storage unit, and it has been optimized? The time complexity of array_key_exists is o(1), while in_array is o(n) ??
Follow up :
This is the case in terms of complexity
array_key_exists is to determine whether a certain key has a value
in_array. If you want to traverse once to get whether they are the same, you don’t know if you have to traverse it in case of construction
The difference between isset and array_key_exists in PHP
1 .The judgment of the array value is different. For the value is null or '' or false, isset returns false, array_key_exists returns true;
2. The execution efficiency is different, isset is a built-in operator, array_key_exists is a PHP built-in function, isset is faster Some. Please refer to: PHP function implementation principle and performance analysis
3. When using isset to access a non-existentindexarray value, it will not cause a PHP error message of E_NOTICE;
4.array_key_exists will call get_defined_vars to determine whether the array variable is Exists, isset is not used;
Test code:
<?php function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } $test_arr['aa']='dd'; $test_arr['bb']=''; $test_arr['cc']=NULL; $test_arr['dd']=false; $test_arr= array('aa'=>'dd','bb'=>'','cc'=>null,'dd'=>false); echo "isset aa is ";var_dump(isset($test_arr['aa']));echo "n"; echo "isset bb is ";var_dump(isset($test_arr['bb']));echo "n"; echo "isset cc is ";var_dump(isset($test_arr['cc']));echo "n"; echo "isset dd is ";var_dump(isset($test_arr['cc']));echo "n"; echo "isset none is ";var_dump(isset($test_arr['none']));echo "n"; echo "key_exist aa is ";var_dump(array_key_exists('aa',$test_arr));echo "n"; echo "key_exist bb is ";var_dump(array_key_exists('bb',$test_arr));echo "n"; echo "key_exist cc is ";var_dump(array_key_exists('cc',$test_arr));echo "n"; echo "key_exist dd is ";var_dump(array_key_exists('dd',$test_arr));echo "n"; echo "key_exist none is ";var_dump(array_key_exists('none',$test_arr));echo "n"; $time_start = microtime_float(); for($i=0;$i<100;$i++){ isset($test_arr['aa']); } $time_end = microtime_float(); $time = $time_end - $time_start; echo "isset 100 is $timen"; for($i=0;$i<10000;$i++){ isset($test_arr['aa']); } $time_end = microtime_float(); $time = $time_end - $time_start; echo "isset 10000 is $timen"; for($i=0;$i<1000000;$i++){ isset($test_arr['aa']); } $time_end = microtime_float(); $time = $time_end - $time_start; echo "isset 1000000 is $timen"; //++++++++++++++++++++++++++++++ $time_start = microtime_float(); for($i=0;$i<100;$i++){ array_key_exists('aa',$test_arr); } $time_end = microtime_float(); $time = $time_end - $time_start; echo "array_key_exists 100 is $timen"; for($i=0;$i<10000;$i++){ array_key_exists('aa',$test_arr); } $time_end = microtime_float(); $time = $time_end - $time_start; echo "array_key_exists 10000 is $timen"; for($i=0;$i<1000000;$i++){ array_key_exists('aa',$test_arr); } $time_end = microtime_float(); $time = $time_end - $time_start; echo "array_key_exists 1000000 is $timen";
The above is a summary of the PHP array function array_key_exists, including indexing. I hope it will be helpful to friends who are interested in PHP tutorials.

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

What does the identity attribute in SQL mean?

How SpringBoot monitors redis Key change events

Unpatchable Yubico two-factor authentication key vulnerability breaks the security of most Yubikey 5, Security Key, and YubiHSM 2FA devices

Five selected Go language open source projects to take you to explore the technology world

How to solve the problem of batch deletion of key values in redis

Go language development essentials: 5 popular framework recommendations

Sort array using Array.Sort function in C#

PHP determines whether a specified key exists in an array
