array_column() returns the values from a single column of the input
, identified by the column_key
. Optionally, an index_key
may be provided to index the values in the returned array by the values from the index_key
column of the input array.
A multi-dimensional array or an array of objects from which to pull a column of values from. If an array of objects is provided, then public properties can be directly pulled. In order for protected or private properties to be pulled, the class must implement both the __get() and __isset() magic methods.
The column of values to return. This value may be an integer key of the column you wish to retrieve, or it may be a string key name for an associative array or property name. It may also be NULL
to return complete arrays or objects (this is useful together with index_key
to reindex the array).
The column to use as the index/keys for the returned array. This value may be the integer key of the column, or it may be the string key name.
Returns an array of values representing a single column from the input array.
Added the ability for the input
parameter to be an array of objects.
<?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); ?>
The above example will output:
Array ( [0] => John [1] => Sally [2] => Jane [3] => Peter )
<?php // Using the $records array from Example #1 $last_names = array_column($records, 'last_name', 'id'); print_r($last_names); ?>
The above example will output:
Array ( [2135] => Doe [3245] => Smith [5342] => Jones [5623] => Doe )
<?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')); ?>
The above example will output:
Array ( [0] => user 1 [1] => user 2 [2] => user 3 )
<?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')); ?>
The above example will output:
Array ( [0] => Fred [1] => Jane [2] => John )
» Recommended userland implementation for PHP lower than 5.5 -
Please login to continue.