PHP Conference Japan 2024

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.

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

up
9
Julian
1 year 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
6
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]??[]) ;

?>
To Top