array_key_exists

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

array_key_existsCheca se uma chave ou índice existe em um array

Descrição

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

array_key_exists() retorna true se a chave key existe no array. key pode ser qualquer valor possível para um índice de um array.

Parâmetros

key

Valor para verificar.

array

Um array com chaves para verificar.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Nota:

array_key_exists() procurará pelas chaves na primeira dimensão apenas. Chaves aninhadas em arrays multidimensionais não serão encontradas.

Exemplos

Exemplo #1 Exemplo da função array_key_exists()

<?php
$busca_array
= array("primeiro" => 1, "segundo" => 4);
if (
array_key_exists("primeiro", $busca_array)) {
echo
"O elemento 'primeiro' está no array!";
}
?>

Exemplo #2 array_key_exists() versus isset()

isset() não retorna true para valores de chave que correspondam a um valor null, enquanto que array_key_exists() faz isto.

<?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 motivo de retrocompatibilidade, a função array_key_exists() também retornará true se o parâmetro key for uma propriedade definida em um dado objeto como parâmetro array. Esse comportamento está depreciado a partir do PHP 7.4.0, e removido a partir do PHP 8.0.0.

Para checar a existência de uma propriedade em um objeto, property_exists() deve ser utilizada.

Veja Também

  • isset() - Informa se a variável foi iniciada
  • array_keys() - Retorna todas as chaves ou uma parte das chaves de um array
  • in_array() - Checa se um valor existe em um array
  • property_exists() - Checa se o objeto ou a classe tem uma propriedade

add a note

User Contributed Notes 2 notes

up
9
Julian
2 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
-16
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