Yii2, ActiveRecord как получить из БД массив нужного вида?

Для получения массива нужного вида из БД с использованием Yii2 и ActiveRecord, вам понадобится выполнить несколько шагов.

1. Определите модель, соответствующую таблице в базе данных. Для этого создайте новый класс, унаследованный от класса yiidbActiveRecord. В этом классе вы должны определить имя таблицы и список атрибутов, например:

use yiidbActiveRecord;

class MyModel extends ActiveRecord
{
    public static function tableName()
    {
        return 'my_table';
    }

    public function rules()
    {
        return [
            // Правила валидации
        ];
    }

    public function attributeLabels()
    {
        return [
            // Метки атрибутов
        ];
    }
}

2. Используйте метод find() модели MyModel для выполнения запроса к базе данных и получения данных. Например, вы можете получить все записи из таблицы следующим образом:

$data = MyModel::find()->all();

3. Преобразуйте полученные данные в массив нужного вида. Для этого используйте функцию array_map() и анонимную функцию. Внутри анонимной функции вы можете определить структуру массива по своему усмотрению. Например:

$result = array_map(function ($item) {
    return [
        'id' => $item->id,
        'name' => $item->name,
        'email' => $item->email,
    ];
}, $data);

В данном примере мы создаём массив, в котором каждый элемент содержит три ключа: id, name и email. Каждый ключ получает значение соответствующего атрибута модели MyModel.

4. Теперь result содержит массив нужного вида, который вы можете использовать в своём коде дальше.

В итоге, для получения массива нужного вида из БД с использованием Yii2 и ActiveRecord, вам нужно определить модель, выполнить запрос к базе данных, и затем преобразовать полученные данные в нужный формат с помощью функции array_map().