PHP array_keys

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 ) : arrayLinguagem de código:  PHP  ( php )

Nesta sintaxe:

  • $arrayé a matriz de entrada.
  • $search_valueespecifica o valor das chaves a serem pesquisadas.
  • $strictse for definido como true, a array_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 $numbersarray.
  • 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 $userque contenha três chaves username, emaile is_active.
  • Segundo, obtenha as chaves do $userarray usando a array_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_activeconté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 truecomo 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *