(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 из Примера #1
$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 )