(PHP 5 >= 5.5.0, PHP 7)
array_column — Возвращает массив из значений одного столбца входного массива
array_column() возвращает массив из значений столбца массива
input
с ключом column_key
.
Опционально можно указать index_key
, чтобы
индексировать возвращаемый массив значениями из столбца с ключом
index_key
входного массива.
input
Многомерный массив или массив объектов, из которого будет производиться выборка значений. Если задан массив объектов, то можно выбирать любые его общедоступные свойства. Для выборки закрытых или защищенных свойств, объект должен реализовывать магические методы __get() и __isset().
column_key
Ключ столбца, значения которого нужно вернуть. Может содержать как числовой ключ, так
и строковой для ассоциативных массивов. А также может принимать значение NULL
, тогда
возвращаются не значения определенного столбца, а весь массив (полезно использовать
вместе с index_key
чтобы переиндексировать массив).
index_key
Ключ столбца, значения которого будут использоваться в качестве ключей возвращаемого массива. Может быть как целочисленным ключом, так и строковым. Тип значения приводится, как обычно для ключей массива (однако, объекты, поддерживающие преобразование к строке также разрешены).
Возвращает массив из значений одного столбца входного массива (набора записей).
Версия | Описание |
---|---|
7.0.0 |
Добавлена возможность использовать массив объектов в input .
|
Пример #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 )