PHP 8.3.4 Released!

array_key_exists

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

array_key_existsVerifica si el índice o clave dada existe en el array

Descripción

array_key_exists(mixed $key, array $array): bool

array_key_exists() devuelve true si la key dada existe en el array. La key puede ser cualquier valor posible para índice de un array.

Parámetros

key

Valor para verificar.

array

Un array con las claves para verificar.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Nota:

array_key_exists() buscará las claves en la primera dimensión solamente. Las claves anidadas en arrays multidimensionales no se encontrarán.

Ejemplos

Ejemplo #1 Ejemplo de array_key_exists()

<?php
$search_array
= array('first' => 1, 'second' => 4);
if (
array_key_exists('first', $search_array)) {
echo
"The 'first' element is in the array";
}
?>

Ejemplo #2 array_key_exists() vs isset()

isset() no retorna true para claves de array que correspondan a un valor null, mientras que array_key_exists() si lo hace.

<?php
$search_array
= array('first' => null, 'second' => 4);

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

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

Notas

Nota:

Por razones de retrocompatilibidad, array_key_exists() también devuelve true si key es una propiedad definida dentro de un objeto dado como array. No debería depender de este comportamiento, y se ha tener cuidado para asegurarse de que array es un array.

Para comprobar si una propiedad existe en un objeto, use property_exists().

Ver también

  • isset() - Determina si una variable está definida y no es null
  • array_keys() - Devuelve todas las claves de un array o un subconjunto de claves de un array
  • in_array() - Comprueba si un valor existe en un array
  • property_exists() - Comprueba si el objeto o la clase tienen una propiedad

add a note

User Contributed Notes 3 notes

up
12
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
4
Rumour
8 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
-41
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