Anonymous
Получить сумму определенного значения столбца для каждой группы из коллекции Laravel, содержащей сгруппированные коллекц
Сообщение
Anonymous » 23 апр 2024, 01:15
Я пытаюсь сгруппировать коллекцию по значению, а также суммировать значения столбцов в каждой вложенной коллекции. Я получаю данные из Google Analytics.
Код: Выделить всё
$collection = collect([
'Phantom.js bot' => collect([
[
'system' => 'unknown',
'systemVersion' => '(not set)',
'browser' => 'Phantom.js bot',
'browserVersion' => '(not set)',
'sessions' => 7,
],
[
'system' => 'unknown',
'systemVersion' => '(not set)',
'browser' => 'Phantom.js bot',
'browserVersion' => '(not set)',
'sessions' => 2,
]
]),
'Chrome' => collect([
[
'system' => 'windows',
'systemVersion' => '10',
'browser' => 'Chrome',
'browserVersion' => '98.0.4758.109',
'sessions' => 12,
],
[
'system' => 'windows',
'systemVersion' => '10',
'browser' => 'Chrome',
'browserVersion' => '98.0.4758.109',
'sessions' => 22,
]
]),
'Opera' => collect([
[
'system' => 'windows',
'systemVersion' => '11',
'browser' => 'Opera',
'browserVersion' => '86.0.4240.198',
'sessions' => 1,
]
]),
'Safari (in-app)' => collect([
[
'system' => 'ios',
'systemVersion' => '10.1.1',
'browser' => 'Safari (in-app)',
'browserVersion' => '(not set)',
'sessions' => 1,
],
[
'system' => 'ios',
'systemVersion' => '10.2.1',
'browser' => 'Safari (in-app)',
'browserVersion' => '(not set)',
'sessions' => 2,
],
[
'system' => 'ios',
'systemVersion' => '10.3.1',
'browser' => 'Safari (in-app)',
'browserVersion' => '(not set)',
'sessions' => 3,
],
[
'system' => 'ios',
'systemVersion' => '8.3',
'browser' => 'Safari (in-app)',
'browserVersion' => '(not set)',
'sessions' => 4,
]
]),
]);
Например, когда вы смотрите на Safari (в приложении), мне просто нужно суммировать все значения ключевых «сессий» во вложенных коллекциях.
Суммирование значений столбца сеансов групп даст следующие результаты.
Как мне это сделать?
Мой Единственная идея — зациклить все коллекции и суммировать значения, но это не кажется хорошей идеей.
В конечном итоге я хочу показать таблицу с двумя столбцами: браузер и сеансы
п>
Подробнее здесь:
https://stackoverflow.com/questions/444 ... containing
1713824151
Anonymous
Я пытаюсь сгруппировать коллекцию по значению, а также суммировать значения столбцов в каждой вложенной коллекции. Я получаю данные из Google Analytics. [code]$collection = collect([ 'Phantom.js bot' => collect([ [ 'system' => 'unknown', 'systemVersion' => '(not set)', 'browser' => 'Phantom.js bot', 'browserVersion' => '(not set)', 'sessions' => 7, ], [ 'system' => 'unknown', 'systemVersion' => '(not set)', 'browser' => 'Phantom.js bot', 'browserVersion' => '(not set)', 'sessions' => 2, ] ]), 'Chrome' => collect([ [ 'system' => 'windows', 'systemVersion' => '10', 'browser' => 'Chrome', 'browserVersion' => '98.0.4758.109', 'sessions' => 12, ], [ 'system' => 'windows', 'systemVersion' => '10', 'browser' => 'Chrome', 'browserVersion' => '98.0.4758.109', 'sessions' => 22, ] ]), 'Opera' => collect([ [ 'system' => 'windows', 'systemVersion' => '11', 'browser' => 'Opera', 'browserVersion' => '86.0.4240.198', 'sessions' => 1, ] ]), 'Safari (in-app)' => collect([ [ 'system' => 'ios', 'systemVersion' => '10.1.1', 'browser' => 'Safari (in-app)', 'browserVersion' => '(not set)', 'sessions' => 1, ], [ 'system' => 'ios', 'systemVersion' => '10.2.1', 'browser' => 'Safari (in-app)', 'browserVersion' => '(not set)', 'sessions' => 2, ], [ 'system' => 'ios', 'systemVersion' => '10.3.1', 'browser' => 'Safari (in-app)', 'browserVersion' => '(not set)', 'sessions' => 3, ], [ 'system' => 'ios', 'systemVersion' => '8.3', 'browser' => 'Safari (in-app)', 'browserVersion' => '(not set)', 'sessions' => 4, ] ]), ]); [/code] Например, когда вы смотрите на Safari (в приложении), мне просто нужно суммировать все значения ключевых «сессий» во вложенных коллекциях. Суммирование значений столбца сеансов групп даст следующие результаты. [list] [*][code]Phantom.js botВсего [/code] — 9 [*][code]ChromeВсего [/code] — 34 [*][code]OperaВсего [/code] — 1 [*][code]Safari (in-app)Всего [/code] — 10. [/list] Как мне это сделать? Мой Единственная идея — зациклить все коллекции и суммировать значения, но это не кажется хорошей идеей. В конечном итоге я хочу показать таблицу с двумя столбцами: браузер и сеансы п> Подробнее здесь: [url]https://stackoverflow.com/questions/44442604/get-sum-of-a-certain-column-value-per-group-from-a-laravel-collection-containing[/url]