PHP 8.1.24 Released!

array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

array_key_existsVérifie si une clé existe dans un tableau

Description

array_key_exists(string|int $key, array $array): bool

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.

Liste de paramètres

key

Valeur à vérifier.

array

Un tableau contenant les clés à vérifier.

Valeurs de retour

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

Exemples

Exemple #1 Exemple avec array_key_exists()

<?php
$search_array
= array('premier' => 1, 'second' => 4);
if (
array_key_exists('premier', $search_array)) {
echo
"L'élément 'premier' existe dans le tableau";
}
?>

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
$search_array
= array('first' => null, 'second' => 4);

// retourne false
isset($search_array['first']);

// retourne true
array_key_exists('first', $search_array);
?>

Notes

Note:

En raison de compatibilité ascendante, la fonction array_key_exists() peut aussi retourner true si key est une propriété définie dans un object, fourni comme paramètre array. Ce comportement est obsolète à partir de PHP 7.4.0, et a été retiré à partir de PHP 8.0.0.

Pour vérifier si une propriété existe dans un objet, property_exists() devrait être utilisé.

Voir aussi

  • isset() - Détermine si une variable est déclarée et est différente de null
  • array_keys() - Retourne toutes les clés ou un ensemble des clés d'un tableau
  • in_array() - Indique si une valeur appartient à un tableau
  • property_exists() - Vérifie si un objet ou une classe possède une propriété

add a note

User Contributed Notes 3 notes

up
13
Julian
7 months ago
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;
}
up
1
Rumour
2 months ago
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]??[]) ;

?>
up
-26
manhon824 at gmail dot com
12 years ago
I took hours for me to debug, and I finally recognized that,

You have to reset the $array before using array_key_exists
reset($array);
array_key_exists($needle,$array);

Or you will get no reply.
To Top