Como obter a chave de um valor em um array no PHP?
Quando trabalhamos com arrays associativos, pode ser necessário encontrar a chave correspondente a um determinado valor. O PHP oferece diversas funções para essa tarefa, como array_search()
, array_keys()
e laços foreach()
.
Obtendo a chave de um valor com array_search()
A função array_search()
retorna a primeira chave onde o valor foi encontrado:
<?php
$dados = ["nome" => "Carlos", "idade" => 30, "cidade" => "São Paulo"];
$chave = array_search("São Paulo", $dados);
echo "A chave correspondente é: $chave";
?>
Saída:
A chave correspondente é: cidade
Aqui, encontramos a chave cidade
associada ao valor São Paulo
.
Obtendo todas as chaves que possuem um determinado valor com array_keys()
Se quisermos todas as chaves de um valor (caso haja duplicação), usamos array_keys()
:
<?php
$numeros = ["a" => 100, "b" => 200, "c" => 100, "d" => 300];
$chaves = array_keys($numeros, 100);
print_r($chaves);
?>
Saída:
Array ( [0] => a [1] => c )
Isso retorna um array com todas as chaves associadas ao valor 100
.
Obtendo a chave de um valor percorrendo o array com foreach()
Se quisermos encontrar chaves de forma personalizada, podemos usar foreach()
:
<?php
$cores = ["vermelho" => "#FF0000", "verde" => "#00FF00", "azul" => "#0000FF"];
foreach ($cores as $chave => $valor) {
if ($valor == "#00FF00") {
echo "A chave correspondente é: $chave";
}
}
?>
Aqui, percorremos o array e encontramos a chave manualmente.
Quando usar array_search(), array_keys() e foreach() no PHP?
A obtenção de chaves de valores em arrays é essencial para manipulação dinâmica de dados no PHP. array_search()
é ideal para encontrar a primeira ocorrência, enquanto array_keys()
permite obter todas as chaves associadas a um valor. Em situações mais complexas, um loop foreach()
pode ser usado para processamentos personalizados.
Algumas aplicações:
- Busca de informações em arrays associativos
- Filtragem de dados em grandes coleções
- Identificação de elementos duplicados
- Manipulação dinâmica de arrays e bancos de dados
Dicas para quem está começando
- Use
array_search()
se precisar da primeira chave correspondente ao valor. - Se houver valores duplicados e quiser todas as chaves associadas, prefira
array_keys()
. - Para verificações personalizadas, um
foreach()
pode ser mais flexível. - Verifique se
array_search()
retornafalse
caso o valor não seja encontrado. - Para buscas mais eficientes, considere organizar os dados em estruturas como bancos de dados ou objetos.

Daniel Moreira
Especialista em desenvolvimento web com PHP e construção de APIs REST.
Mais sobre o autor