array_columnВозвращает массив из значений одного столбца входного массива
&reftitle.description;
arrayarray_columnarrayarrayintstringnullcolumn_keyintstringnullindex_key&null;
Функция array_column возвращает значения из одного столбца массива
array, который идентифицируется ключом column_key.
Необязательный параметр index_key индексирует значения выходного массива
значениями столбца index_key входного массива.
&reftitle.parameters;
array
Многомерный массив или массив объектов, из которого вытягивается
столбец значений. При передаче массива объектов функция вытянет из объектов только общедоступные
свойства. Для вытягивания защищённых или закрытых свойств потребуется реализовать в классе
оба магических метода — __get и __isset.
column_key
Столбец, значения которого требуется вернуть. В аргументе передают либо целочисленный ключ столбца,
значения которого требуется получить, либо название строкового ключа ассоциативного массива или свойства объекта.
В параметр передают значение &null;, чтобы вернуть массивы или объекты целиком, что полезно
при одновременной передаче аргумента index_key для переиндексации выходного массива.
index_key
Столбец, значения которого станут ключами или индексами возвращаемого массива.
В аргументе передают либо целочисленный ключ столбца,
либо название строкового ключа. Значение
приводится
стандартным для ключей массива способом, а до PHP 8.0.0 также разрешались объекты,
которые поддерживают преобразование в строку.
&reftitle.returnvalues;
Функция возвращает массив значений, которые представляют один столбец из входного массива.
&reftitle.changelog;
&Version;&Description;8.0.0
Функция больше не приводит к строке объекты в столбцах, которые обозначили аргументом index_key,
а вместо этого выбрасывает ошибку TypeError.
&reftitle.examples;
Пример получения столбца с именами из набора записей
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);
?>
]]>
&example.outputs;
John
[1] => Sally
[2] => Jane
[3] => Peter
)
]]>
Пример получения столбца с фамилиями из набора записей и индексации фамилий значениями столбца "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',
]
];
$last_names = array_column($records, 'last_name', 'id');
print_r($last_names);
?>
]]>
&example.outputs;
Doe
[3245] => Smith
[5342] => Jones
[5623] => Doe
)
]]>
Пример получения столбца с именами пользователей из открытого свойства объекта "username"
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
)
]]>
Пример получения столбца с именами из закрытого свойства объекта "name"
путём определения магических методов __isset и __get
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
)
]]>
Функция вернёт пустой массив, если класс объекта
не содержит определения магического метода __isset.