@zxcursed

Как разделить/разбить ответ от базы на несколько массивов?

Доброго времени суток, в результате запроса к базе получают ответ (ниже таблица пример), как мне разбить этот ответ на массивы в зависимости от количества разных результатов столбца month?
AlAYmQo.png

На примере ответа выше должно быть в итоге 3 ответа/массива
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony Куратор тега PHP
$fromDb = [
    ['id'=>1, 'day'=>2, 'month'=>1],
    ['id'=>2, 'day'=>22, 'month'=>3],
    ['id'=>2, 'day'=>31, 'month'=>2],
    ['id'=>4, 'day'=>12, 'month'=>2],
    ['id'=>5, 'day'=>4, 'month'=>3]
];

function groupBy(array $elements, callable $getUniqueKey) {
    $grouped = [];
    
    foreach ($elements as $element) {
        $uniqueKey = $getUniqueKey($element);
        $grouped[$uniqueKey][] = $element;
    }
    
    return $grouped;
}

$groupedByMonth = groupBy($fromDb, function($row) {
    return $row['month'];
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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