array_column()
array_column() — Return the values from a single column in the input array.
Built-in function of PHP 8.5. The manual lists it as available in PHP 5 >= 5.5.0, PHP 7, PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.
What it does
array_column() returns the values from a single column of the array, 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.
Signature
array_column(array $array, int|string|null $column_key, int|string|null $index_key = null): array
Parameters
| Parameter | Type | What it takes |
|---|---|---|
| $array | array | A list whose rows are arrays or objects, from which a column of values is pulled. If a row is an object, public properties are read directly. For a property that is not publicly accessible to be read, the class must implement both the __get() and __isset() magic methods: without __isset() the row is skipped, and with __isset() but no __get() an Error is thrown. |
| $column_key | int|string|null | The column of values to return. This value may be an integer key of the column 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 rows (this is useful together with index_key to reindex the array). |
| $index_key | int|string|null | 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. The value is cast as usual for array keys (however, prior to PHP 8.0.0, objects supporting conversion to string were also allowed). |
Return value
Returns an array of values representing a single column from the input array. If column_key is null, the rows themselves are returned.
Example
A runnable snippet:
// Array representing a possible record set returned from a database $records = [ [ 'id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe', ], [ 'id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith', ], [ 'id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones', ], [ 'id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe', ] ]; $first_names = array_column($records, 'first_name'); print_r($first_names);
Output:
Array ( [0] => John [1] => Sally [2] => Jane [3] => Peter )
Changelog
| Version | Change |
|---|---|
| 8.0.0 | Objects in columns indicated by index_key parameter will no longer be cast to string and will now throw a TypeError instead. |
| 7.1.0 | Property visibility is now respected. Formerly, protected and private properties were read directly. |
| 7.0.0 | The rows of array may now be objects as well as arrays. |
All PHP 8.5 built-in functions
Reference card built from the PHP manual page array_column() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.