Задать вопрос
AlexanderShapoval
@AlexanderShapoval
PHP maker

Laravel, группировка через groupby(). Как вернуть массив содержащий id?

День добрый.
Имеется запрос
$ret = User::select('id')->groupBy('age')->get();

Группирует норм, только надо в результате получить массивы с id пользователей:
[1,3,8,9],[2,4,5,7],[6,10].....

Подскажите, как это сделать. Спасибо!
  • Вопрос задан
  • 2495 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Loftschool
    Комплексное обучение PHP
    6 недель
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Яндекс Практикум
    Фулстек-разработчик расширенный
    20 месяцев
    Далее
Решения вопроса 1
abler98
@abler98
Software Engineer
$users = User::select(DB::raw('GROUP_CONCAT(id) as id'))->groupBy('age')->get();
$groups = $users->map(function ($item, $key) {
  return explode(',', $item['id']); // Возможно здесь ошибся
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Denormalization
@Denormalization
Как-то вот так (костыльно):
$ret = User::select('id', 'age')->get()->groupBy('age')->map(function ($item) { return $item->pluck('id'); } )->toArray();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы