(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)
array_key_exists — Vérifie si une clé existe dans un tableau
array_key_exists() retourne true
s'il existe une
clé du nom de key
dans le tableau
array
. key
peut être n'importe quelle valeur valide d'index
de tableau.
key
Valeur à vérifier.
array
Un tableau contenant les clés à vérifier.
Cette fonction retourne true
en cas de succès ou false
si une erreur survient.
Note:
array_key_exists() va rechercher, uniquement, dans les clés de la première dimension. Les clés imbriquées dans les tableaux multidimensionnels ne seront pas trouvées
Version | Description |
---|---|
8.0.0 |
Le paramètre key accepte désormais
les arguments de type bool , float , int ,
null , resource , et
string .
|
8.0.0 |
Il n'est plus possible de passer un objet au paramètre array .
|
7.4.0 |
Il est déconseillé de passer un objet au paramètre array . Utiliser plutôt property_exists() .
|
Exemple #1 Exemple avec array_key_exists()
<?php
$searchArray = ['first' => 1, 'second' => 4];
var_dump(array_key_exists('first', $searchArray));
?>
L'exemple ci-dessus va afficher :
bool(true)
Exemple #2 array_key_exists() et isset()
isset() ne retourne pas true
pour les clés de
tableaux qui correspondent à une valeur null
alors que c'est le
cas pour array_key_exists().
<?php
$searchArray = ['first' => null, 'second' => 4];
var_dump(isset($searchArray['first']));
var_dump(array_key_exists('first', $searchArray));
?>
L'exemple ci-dessus va afficher :
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.";
}
?>