(PHP 5 >= 5.5.0, PHP 7)
array_column — Retorna os valores de uma coluna do array informado
A função array_column() retorna os valores de uma coluna do
input
informado, indentificada pelo
column_key
. Opcionalmente, uma
index_key
pode ser informada para indexar os valores do
array retornado pelos valores da coluna index_key
do array.
input
Um array multidimensional ou um array de objetos que se deseja extrair os valores da coluna. Se um array de objetos for fornecido, propriedades públicas podem ser extraídas diretamente. Para extrair propriedades protegidas e privadas, a classe deve implementar ambos os métodos mágicos __get() e __isset().
column_key
A coluna de valores a ser retornada. Este valor pode ser uma chave inteira da
coluna que se deseja recuperar, ou uma uma string com o nome da chave de um
array associativo ou nome de propriedade. Também pode ser NULL
para retornar
arrays completos ou objetos (isso é útil com o parâmetro
index_key
, para reindexar o array).
index_key
A coluna a ser utilizada como índices/chaves do array retornado. Este valor pode ser uma chave inteira da coluna, ou uma uma string com o nome da chave.
Retorna um array com os valores que representam uma coluna do array informado.
Versão | Descrição |
---|---|
7.0.0 |
Adicionada a habilidade que possibilita o parâmetro input ser
um array de objetos.
|
Exemplo #1 Obtém a coluna first_name dos registros
<?php
// Array representing a possible record set returned from a database
$records = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
),
array(
'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',
),
array(
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
)
);
$first_names = array_column($records, 'first_name');
print_r($first_names);
?>
O exemplo acima irá imprimir:
Array ( [0] => John [1] => Sally [2] => Jane [3] => Peter )
Exemplo #2 Obtém a coluna last_name dos registros, indexados pela coluna "id"
<?php
// Using the $records array from Example #1
$last_names = array_column($records, 'last_name', 'id');
print_r($last_names);
?>
O exemplo acima irá imprimir:
Array ( [2135] => Doe [3245] => Smith [5342] => Jones [5623] => Doe )
Exemplo #3 Obtém a coluna de nomes de usuários da propriedade pública "username" de um objeto
<?php
class User
{
public $username;
public function __construct(string $username)
{
$this->username = $username;
}
}
$users = [
new User('user 1'),
new User('user 2'),
new User('user 3'),
];
print_r(array_column($users, 'username'));
?>
O exemplo acima irá imprimir:
Array ( [0] => user 1 [1] => user 2 [2] => user 3 )
Exemplo #4 Obtém a coluna de nomes da propriedade privada "name" de um objeto utilizando o método mágico __get().
<?php
class Person
{
private $name;
public function __construct(string $name)
{
$this->name = $name;
}
public function __get($prop)
{
return $this->$prop;
}
public function __isset($prop) : bool
{
return isset($this->$prop);
}
}
$people = [
new Person('Fred'),
new Person('Jane'),
new Person('John'),
];
print_r(array_column($people, 'name'));
?>
O exemplo acima irá imprimir:
Array ( [0] => Fred [1] => Jane [2] => John )