Yii2. Как извлечь колонку с массива с ArrayHelper?


Часто бывает нужно извлечь одну колонку с многомерного массива — например, с результата запроса к Базе Данных. Сделать это не сложно — пробежать по массиву циклом и выделить нужные колонки. Но можно извлечь колонку с помощью ArrayHelper, что существенно облегчит код и Вашу задачу в целом.

$data = [
    ['id' => '1', 'name' => 'Valery'],
    ['id' => '2', 'name' => 'Victoria'],
];
$ids = ArrayHelper::getColumn($array, 'id');
$names = ArrayHelper::getColumn($array, 'name');

В результате в массиве $ids будет массив [1, 2], а в массиве $names — [‘Valery’, ‘Victoria’].

В качестве второго параметра можно указать также callback-функцию, которая будет выполнять какие-то действия с данными перед тем, как они попадут в исходящий массив. Тогда вызов может иметь примерно такой вид:

$data = ArrayHelper::getColumn($array, function ($element) {
    return 'ID of element: '.$element['id'];
});
,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *