# array_column

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

array_column — Devuelve los valores de una sola columna del array de entrada

### Descripción

array_column(array `$input`, mixed `$column_key`, mixed `$index_key` = `null`): array

array_column() devuelve los valores de una sola columna de `input`, identificado por la clave de columna `column_key`. Opcionalmente, se podría proporcionar una clave de índice, `index_key`, para indexar los valores del array devuelto por los valores de la columna `index_key` del array de entrada.

### Parámetros

`input`

  Un array multidimensional o un array de objetos desde el que extraer una columna de valores. Si se proporciona un array de objetos, entonces se podrá extraer directamente las propiedades públicas. Para poder extraer las proiedades protegidas o privadas, la clase debe implementar los métodos mágicos __get() y __isset().

`column_key`

  La columna de valores a devolver. Este valor podría ser una clave de tipo integer de la columna de la cual obtener los datos, o podría ser una clave de tipo string para un array asociativo o nombre de propiedad. También prodría ser `null` para devolver array completos u objetos (útil junto con `index_key` para reindexar el array).

`index_key`

  La columna a usar como los índices/claves para el array devuelto. Este valor podría ser la clave de tipo integer de la columna, o podría ser el nombre de la clave de tipo string. El valor es cast como es habitual para las claves de array (Sin embargo, también se permiten los objetos que soportan la conversión a string).

### Valores devueltos

Devuelve un array de valores que representa una sola columna del array de entrada.

### Historial de cambios

Versión | Descripción
--- | ---
7.0.0 | Se añadió la capacidad de que el parámetro `input` sea un array de objetos.

### Ejemplos

Ejemplo #1 Obtener la columna de nombres del conjunto de resultados

`<?php
// Array representando un conjunto de registros posibles devueltos desde una base de datos
$registros = array(
array(
'id' => 2135,
'nombre' => 'John',
'apellido' => 'Doe',
),
array(
'id' => 3245,
'nombre' => 'Sally',
'apellido' => 'Smith',
),
array(
'id' => 5342,
'nombre' => 'Jane',
'apellido' => 'Jones',
),
array(
'id' => 5623,
'nombre' => 'Peter',
'apellido' => 'Doe',
)
);
$nombres = array_column($registros, 'nombre');
print_r($nombres);
?>`

El resultado del ejemplo sería:

    Array
    (
        [0] => John
        [1] => Sally
        [2] => Jane
        [3] => Peter
    )

Ejemplo #2 Obtener la columna de apellidos del conjunto de resultados, indexada por la columna "id"

`<?php
// Se emplea el array $registros del Ejemplo #1
$apellidos = array_column($registros, 'apellido', 'id');
print_r($apellidos);
?>`

El resultado del ejemplo sería:

    Array
    (
        [2135] => Doe
        [3245] => Smith
        [5342] => Jones
        [5623] => Doe
    )

Ejemplo #3 Obtener la columna de nombres de usuarios de la propiedad pública "nombre_usuario" de un objeto

`<?php
class Usuario
{
public $nombre_usuario;
public function __construct(string $nombre_usuario)
{
$this->nombre_usuario = $nombre_usuario;
}
}
$usuarios = [
new Usuario('usuario 1'),
new Usuario('usuario 2'),
new Usuario('usuario 3'),
];
print_r(array_column($usuarios, 'nombre_usuario'));
?>`

El resultado del ejemplo sería:

    Array
    (
        [0] => usuario 1
        [1] => usuario 2
        [2] => usuario 3
    )

Ejemplo #4 Obtener la columna de nombres de la propiedad privada "nombre" de un objeto empleando el método mágico __get().

`<?php
class Persona
{
private $name;
public function __construct(string $nombre)
{
$this->nombre = $nombre;
}
public function __get($prop)
{
return $this->$prop;
}
public function __isset($prop) : bool
{
return isset($this->$prop);
}
}
$gente = [
new Persona('Fred'),
new Persona('Jane'),
new Persona('John'),
];
print_r(array_column($gente, 'nombre'));
?>`

El resultado del ejemplo sería:

    Array
    (
        [0] => Fred
        [1] => Jane
        [2] => John
    )

Si no se proporciona __isset(), será devuelto un array vacío.

### Ver también

- » Implementación del espacio de usuario recomendada para PHP menor que 5.5