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