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|float|bool|resource|null $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

Historique

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().

Exemples

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)

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 2 notes

up
11
Rumour
1 year 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
10
Julian
2 years 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;
}
To Top