array_columnReturn the values from a single column in the input array
&reftitle.description;
arrayarray_columnarrayinputmixedcolumn_keymixedindex_key&null;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.
&reftitle.parameters;
input
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.
column_key
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).
index_key
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.
&reftitle.returnvalues;
Returns an array of values representing a single column from the input array.
&reftitle.changelog;
&Version;&Description;7.0.0
Added the ability for the input parameter to be
an array of objects.
&reftitle.examples;
Get the column of first names from a recordset
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);
?>
]]>
&example.outputs;
John
[1] => Sally
[2] => Jane
[3] => Peter
)
]]>
Get the column of last names from a recordset, indexed by the "id" column
]]>
&example.outputs;
Doe
[3245] => Smith
[5342] => Jones
[5623] => Doe
)
]]>
Get the column of usernames from the public "username" property of an
object
username = $username;
}
}
$users = [
new User('user 1'),
new User('user 2'),
new User('user 3'),
];
print_r(array_column($users, 'username'));
?>
]]>
&example.outputs;
user 1
[1] => user 2
[2] => user 3
)
]]>
Get the column of names from the private "name" property of an object
using the magic __get method.
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'));
?>
]]>
&example.outputs;
Fred
[1] => Jane
[2] => John
)
]]>
If __isset is not provided, then an empty array will be
returned.
&reftitle.seealso;
Recommended
userland implementation for PHP lower than 5.5