(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.
key
Value to check.
array
An 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.";
}
?>