Como vimos no primeiro post onde falamos de array em PHP, array é uma estrutura de dados que armazena um conjunto de elementos em PHP. Aqui não iremos explicar com detalhes, se soou confuso essa explicação, veja: PHP – Aula 020: Arrays
A função PHP array_keys() aceita um array e retorna todas as chaves(índices) ou um subconjunto das chaves do array.
<?php
$nomes = [
'Maria',
'Paulo',
'Pedro',
'Joaozinho'];
$chaves = array_keys($nomes);
echo "<pre>";
print_r($chaves);
echo "</pre>";
?>
Resultado:
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
)
Se quisermos que retorne a chave de um elemento:
<?php
$nomes = [
'Maria',
'Paulo',
'Pedro',
'Joaozinho'];
$chaves = array_keys($nomes, 'Joaozinho');
echo "<pre>";
print_r($chaves);
echo "</pre>";
?>
Resultado:
Array
(
[0] => 3
)
Usando array_keys() em um Array Associativo
Com Array associativo em PHP, em vez de usar índices numéricos, como em um array regular, você pode usar chaves de texto para acessar e manipular os valores dentro do array. Veja: Aula 020: Arrays
Para usarmos a função array_keys() em um array associativo fazemos:
<?php
$nomes = [
'nome' => 'Maria',
'sobrenome' => 'Silva',
'email' => 'maria@email'
];
$chaves = array_keys($nomes);
echo "<pre>";
print_r($chaves);
echo "</pre>";
echo "<br>";
print_r( array_keys($nomes, 'Silva'));
?>
Resultado:
Array
(
[0] => nome
[1] => sobrenome
[2] => email
)
Array ( [0] => sobrenome )
Usando o Operador de Comparação ===
Em PHP, o operador de comparação === compara tanto o valor quanto o tipo de dados, enquanto o operador == compara apenas o valor dos dados, sem levar em consideração o tipo. Veja PHP – Aula 011: Operadores(+, -, *, /, %, ++, –) e PHP – Aula 012: Um Pouco Mais Sobre Operadores.
Por padrão, a função array_keys() usa o operador == para comparação. Podemos fazer com que ele use o === inserindo true ao final:
<?php
....
array_keys($nomes, 'Silva'), true);
?>
Se quiser saber mais sobre operadores verifica nossos artigos:
PHP 011: Operadores(+, -, *, /, %, ++, –)
e
PHP 012: Um Pouco Mais Sobre Operadores
Conclusão
A função array_keys() em PHP é útil para obter todas as chaves de um array. Ela retorna um novo array contendo todas as chaves do array original. Isso pode ser útil para realizar operações específicas nas chaves ou para iterar sobre elas de forma mais conveniente.