(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)
array_key_exists — Checks if the given key or index exists in the array
array_key_exists() returns true if the
given key is set in the array.
key can be any value possible
for an array index.
keyValue to check.
arrayAn array with keys to check.
Returns true on success or false on failure.
Note:
array_key_exists() will search for the keys in the first dimension only. Nested keys in multidimensional arrays will not be found.
| Version | Description |
|---|---|
| 8.0.0 |
The key parameter now accepts
bool , float , int ,
null , resource , and
string as arguments.
|
| 8.0.0 |
Passing an object to the array parameter is no longer supported.
|
| 7.4.0 |
Passing an object to the array parameter has been deprecated. Use property_exists() instead.
|
Example #1 array_key_exists() example
<?php
$searchArray = ['first' => 1, 'second' => 4];
var_dump(array_key_exists('first', $searchArray));
?>The above example will output:
bool(true)
Example #2 array_key_exists() vs isset()
isset() does not return true for array keys
that correspond to a null value, while
array_key_exists() does.
<?php
$searchArray = ['first' => null, 'second' => 4];
var_dump(isset($searchArray['first']));
var_dump(array_key_exists('first', $searchArray));
?>The above example will output:
bool(false) bool(true)
In PHP7+ to find if a value is set in a multidimensional array with a fixed number of dimensions, simply use the Null Coalescing Operator: ??
So for a three dimensional array where you are not sure about any of the keys actually existing
<?php
// instead of:
$exists = array_key_exists($key1, $arr) && array_key_exists($key2, $arr[$key1]) && array_key_exists($key3, $arr[$key1][$key2]) ;
// use:
$exists = array_key_exists($key3, $arr[$key1][$key2]??[]) ;
?>When you want to check multiple array keys:
<?php
$array = [];
$array['a'] = '';
$array['b'] = '';
$array['c'] = '';
$array['d'] = '';
$array['e'] = '';
// all given keys a,b,c exists in the supplied array
var_dump(array_keys_exists(['a','b','c'], $array)); // bool(true)
function array_keys_exists(array $keys, array $array): bool
{
$diff = array_diff_key(array_flip($keys), $array);
return count($diff) === 0;
}<?php
// Define an associative array
$userProfile = [
'name' => 'John Doe',
'email' => 'john.doe@example.com',
'age' => 30,
'country' => 'USA'
];
// Key to check
$keyToCheck = 'email';
// Use array_key_exists to check if the key exists in the array
if (array_key_exists($keyToCheck, $userProfile)) {
echo "The key '$keyToCheck' exists in the array with value: " . $userProfile[$keyToCheck];
} else {
echo "The key '$keyToCheck' does not exist in the array.";
}
?>