(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)
array_key_exists — Prüft, ob ein gegebener Schlüssel in einem Array existiert
array_key_exists() gibt true
zurück, wenn
key
im Array vorhanden ist.
key
kann jeder für einen Array-Index
mögliche Wert sein.
key
Der zu prüfende Wert.
array
Ein Array mit den zu prüfenden Schlüsseln.
Gibt bei Erfolg true
zurück. Bei einem Fehler wird false
zurückgegeben.
Hinweis:
array_key_exists() sucht nur in der ersten Dimension nach Schlüsseln. Verschachtelte Schlüssel in mehrdimensionalen Arrays werden nicht gesucht.
Version | Beschreibung |
---|---|
8.0.0 |
Der Parameter key akzeptiert nun Werte vom Typ
bool , float , int ,
null , resource und string als
Argumente.
|
8.0.0 |
Die Übergabe eines object s an den Parameter
array wird nicht mehr unterstützt.
|
7.4.0 |
Die Übergabe eines object s an den Parameter
array ist veraltet. Stattdessen sollte
property_exists() verwendet werden.
|
Beispiel #1 array_key_exists()-Beispiel
<?php
$searchArray = ['erstes' => 1, 'zweites' => 4];
var_dump(array_key_exists('erstes', $searchArray));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
bool(true)
Beispiel #2 array_key_exists() vs. isset()
isset() gibt für Schlüssel eines Arrays, die zu einem
null
-Wert gehören, nicht true
zurück, während
array_key_exists() dies tut.
<?php
$searchArray = ['erstes' => null, 'zweites' => 4];
var_dump(isset($searchArray['erstes']));
var_dump(array_key_exists('erstes', $searchArray));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
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.";
}
?>