Resumo : neste tutorial você aprenderá como usar a array_keys()
função PHP para obter as chaves de um array.
Introdução à função array_keys do PHP
A função PHP array_keys() aceita um array e retorna todas as chaves ou um subconjunto das chaves do array.
array_keys ( array $array , mixed $search_value , bool $strict = false ) : array
Linguagem de código: PHP ( php )
Nesta sintaxe:
$array
é a matriz de entrada.$search_value
especifica o valor das chaves a serem pesquisadas.$strict
se for definido comotrue
, aarray_keys()
função usará o operador idêntico (===) para combinar o search_value com as chaves do array. Caso contrário, a função usa o operador igual (==) para correspondência.
A array_keys()
função retorna um array que contém todas as chaves do array de entrada.
Exemplos de funções PHP array_keys()
Vejamos alguns exemplos de uso da array_keys()
função.
1) Usando o exemplo da função array_keys()
O exemplo a seguir mostra como obter todas as chaves de um array indexado:
<?php
$numbers = [10, 20, 30];
$keys = array_keys($numbers);
print_r($keys);
Linguagem de código: HTML, XML ( xml )
Saída:
Array
(
[0] => 0
[1] => 1
[2] => 2
)
Linguagem de código: PHP ( php )
Como funciona.
- Primeiro, defina uma matriz que contenha três números.
- Segundo, use a
array_keys()
função para obter todas as chaves do$numbers
array. - Terceiro, exiba as chaves.
Como $numbers
é um array indexado, a array_keys()
função retorna as chaves numéricas do array.
O exemplo a seguir usa a array_keys()
função para obter as chaves do array com valor inteiro 20:
<?php
$numbers = [10, 20, 30];
$keys = array_keys($numbers, 20);
print_r($keys);
Linguagem de código: HTML, XML ( xml )
Saída:
Array
(
[0] => 1
)
Linguagem de código: PHP ( php )
A array_keys()
função retorna a chave 1 porque a chave 1 contém o valor 20.
2) Usando a função PHP array_keys() com um exemplo de array associativo
O exemplo a seguir ilustra como usar a array_keys()
função com uma matriz associativa:
<?php
$user = [
'username' => 'admin',
'email' => '[email protected]',
'is_active' => '1'
];
$properties = array_keys($user);
print_r($properties);
Linguagem de código: HTML, XML ( xml )
Saída:
Array
(
[0] => username
[1] => email
[2] => is_active
)
Linguagem de código: PHP ( php )
Como funciona.
- Primeiro, defina uma matriz associativa
$user
que contenha três chavesusername
,email
eis_active
. - Segundo, obtenha as chaves do
$user
array usando aarray_keys()
função. - Terceiro, mostre as chaves retornadas.
O exemplo a seguir usa a array_keys()
função para obter as chaves cujos valores são iguais a 1:
$user = [
'username' => 'admin',
'email' => '[email protected]',
'is_active' => '1'
];
$properties = array_keys($user, 1);
print_r($properties);
Linguagem de código: PHP ( php )
Saída:
Array
(
[0] => is_active
)
Linguagem de código: PHP ( php )
A array_keys()
função retorna uma chave, que é is_active
. No entanto, is_active
contém a string '1'
e não o número 1
. Isso ocorre porque array_keys()
usa o operador de igualdade (==) para comparação na pesquisa por padrão.
Para ativar a comparação estrita de igualdade (===) ao pesquisar, você passa true
como terceiro argumento da array_keys()
função assim:
<?php
$user = [
'username' => 'admin',
'email' => '[email protected]',
'is_active' => '1'
];
$properties = array_keys($user, 1, true);
print_r($properties);
Linguagem de código: HTML, XML ( xml )
Saída:
Array
(
)
Linguagem de código: JavaScript ( javascript )
Agora, a array_keys()
função retorna um array vazio.
Encontrando chaves de array que passam em um teste
A função a seguir retorna as chaves de um array, que passam em um teste especificado em um retorno de chamada:
<?php
function array_keys_by(array $array, callable $callback): array
{
$keys = [];
foreach ($array as $key => $value) {
if ($callback($key)) {
$keys[] = $key;
}
}
return $keys;
}
Linguagem de código: HTML, XML ( xml )
O exemplo a seguir usa a função array_keys_by() acima para encontrar as chaves que contêm a string '_post'
:
<?php
$permissions = [
'edit_post' => 1,
'delete_post' => 2,
'publish_post' => 3,
'approve' => 4,
];
$keys = array_keys_by($permissions, function ($permission) {
return strpos($permission, 'post');
});
print_r($keys);
Linguagem de código: HTML, XML ( xml )
Resumo
- Use a função PHP
array_keys()
para obter todas as chaves ou um subconjunto de chaves em um array.