PHP СВОДНАЯ ТАБЛИЦА
В PHP есть множество способов работы с таблицами. Одним из таких способов является создание сводной таблицы, что может быть очень полезно при обработке большого количества данных.
Для создания сводной таблицы в PHP можно использовать функции array и array_multisort. Сначала необходимо создать массив данных, который будет содержать все нужные нам значения. Далее, используя функцию array, необходимо создать массивы для столбцов, по которым мы будем группировать данные, и для значений, которые мы хотим отобразить в сводной таблице.
$data = array(
array('name' => 'John', 'age' => 21, 'gender' => 'Male', 'score' => 85),
array('name' => 'Mary', 'age' => 21, 'gender' => 'Female', 'score' => 91),
array('name' => 'David', 'age' => 22, 'gender' => 'Male', 'score' => 89),
array('name' => 'Emily', 'age' => 23, 'gender' => 'Female', 'score' => 78),
array('name' => 'Daniel', 'age' => 22, 'gender' => 'Male', 'score' => 93)
);
$columns = array('age', 'gender');
$values = array('score');
Затем необходимо отсортировать наш массив данных используя функцию array_multisort. Мы сортируем массив по каждому из столбцов, указанных в массиве $columns. Далее, используя функцию array_reduce, мы группируем наши данные по каждому уникальному ключу в массиве $columns, а затем суммируем значения из массива $values. Результатом работы данного кода будет массив $pivotTable, который и будет содержать нашу сводную таблицу.
array_multisort(array_column($data, $columns[0]), SORT_ASC,
array_column($data, $columns[1]), SORT_ASC,
$data
);
$pivotTable = array_reduce($data, function ($carry, $item) use ($columns, $values) {
$key = $item[$columns[0]] . '-' . $item[$columns[1]];
if (!isset($carry[$key])) {
$carry[$key] = array_combine($columns, array($item[$columns[0]], $item[$columns[1]]));
}
$carry[$key][implode('_', $values)] += $item[$values[0]];
return $carry;
}, array());
В результате, в переменной $pivotTable мы получим следующую сводную таблицу:
Array
(
[21-Female] => Array
(
[age] => 21
[gender] => Female
[score] => 91
)
[21-Male] => Array
(
[age] => 21
[gender] => Male
[score] => 85
)
[22-Female] => Array
(
[age] => 22
[gender] => Female
[score] => 0
)
[22-Male] => Array
(
[age] => 22
[gender] => Male
[score] => 182
)
...
)
Создание сводной таблицы по данным с разных листов ➤ Модель данных в Excel
Дополнительные вычисления и операции сводных таблиц - 6-ое Видео курса \
Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! - 1-ое Видео курса \
PHP и PhpMyAdmin - создание, вывод, изменение и удаление данных
61 - Уроки PHP. Google Sheets API
Как сделать сводную таблицу в Excel
Как сделать сводную таблицу в Excel
Курс Excel_Базовый - Урок №20 Сводные таблицы. Принципы построения