array_column
(PHP 5 >= 5.5.0, PHP 7)
array_column — Возвращает массив из значений одного столбца входного массива
Описание
$array
, int|string|null $column_key
, int|string|null $index_key
= null
) : array
array_column() возвращает массив из значений столбца массива
array
с ключом column_key
.
Опционально можно указать index_key
, чтобы
индексировать возвращаемый массив значениями из столбца с ключом
index_key
входного массива.
Список параметров
-
array
-
Многомерный массив или массив объектов, из которого будет производиться выборка значений. Если задан массив объектов, то можно выбирать любые его общедоступные свойства. Для выборки закрытых или защищенных свойств, объект должен реализовывать магические методы __get() и __isset().
-
column_key
-
Ключ столбца, значения которого нужно вернуть. Может содержать как числовой ключ, так и строковой для ассоциативных массивов. А также может принимать значение
null
, тогда возвращаются не значения определенного столбца, а весь массив (полезно использовать вместе сindex_key
чтобы переиндексировать массив). -
index_key
-
Ключ столбца, значения которого будут использоваться в качестве ключей возвращаемого массива. Может быть как целочисленным ключом, так и строковым. Тип значения приводится, как обычно для ключей массива (однако, объекты, поддерживающие преобразование к строке также разрешены).
Возвращаемые значения
Возвращает массив из значений одного столбца входного массива (набора записей).
Список изменений
Версия | Описание |
---|---|
7.0.0 |
Добавлена возможность использовать массив объектов в array .
|
Примеры
Пример #1 Получим столбец с именами из набора записей
<?php
// Массив, представляющий из себя набор записей полученных из базы данных
$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);
?>
Результат выполнения данного примера:
Array ( [0] => John [1] => Sally [2] => Jane [3] => Peter )
Пример #2 Получим столбец с фамилиями, а в качестве ключей возвращаемого массива используем значения из столбца "id"
<?php
// Используем массив $records из первого примера
$last_names = array_column($records, 'last_name', 'id');
print_r($last_names);
?>
Результат выполнения данного примера:
Array ( [2135] => Doe [3245] => Smith [5342] => Jones [5623] => Doe )
Пример #3 Получим столбец имен пользователей из общедоступного свойства "username" объекта
<?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'));
?>
Результат выполнения данного примера:
Array ( [0] => user 1 [1] => user 2 [2] => user 3 )
Пример #4 Получим столбец имен пользователей из приватного свойства "name" объекта, используя магический метод __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'));
?>
Результат выполнения данного примера:
Array ( [0] => Fred [1] => Jane [2] => John )