Anonymous
Группируйте строки двумерного массива по столбцу и суммируйте числовые столбцы внутри групп
Сообщение
Anonymous » 08 ноя 2024, 09:11
У меня есть $row, который выводит следующее. Массив 0–4 не меняется для каждого пользователя, но последние элементы каждого массива необходимо сложить вместе.
Код: Выделить всё
array (
0 => '2',
1 => 'Joe',
2 => 'Bloggs',
3 => 'joe.bloggs@mail.com',
4 => '1,2',
5 => 1,
6 => 0,
7 => 1,
)array (
0 => '2',
1 => 'Joe',
2 => 'Bloggs',
3 => 'joe.bloggs@mail.com',
4 => '1,2',
5 => 0,
6 => 1,
7 => 1,
)array (
0 => '1',
1 => 'Jane',
2 => 'Doe',
3 => 'jane.doe@mail.com',
4 => '1,4',
5 => 1,
6 => 0,
7 => 1,
)array (
0 => '1',
1 => 'Jane',
2 => 'Doe',
3 => 'jane.doe@mail.com',
4 => '1,4',
5 => 0,
6 => 0,
7 => 0,
)
Мне нужно объединить их, чтобы они выглядели следующим образом:
Код: Выделить всё
Array
(
[0] => 2
[1] => Joe
[2] => Bloggs
[3] => joe.bloggs@mail.com
[4] => 1,2
[5] => 1
[6] => 1
[7] => 2
)
Array
(
[0] => 1
[1] => Jane
[2] => Doe
[3] => jane.doe@mail.com
[4] => 1,4
[5] => 1
[6] => 0
[7] => 1
)
Мой код на данный момент:
Код: Выделить всё
$combined = array();
foreach ($row as $item) {
if (!array_key_exists($item[0], $combined)) {
$combined[$item[0]] = $item;
} else {
array_push($combined, $item);
}
}
Но это не то, чего я ожидаю.
Подробнее здесь:
https://stackoverflow.com/questions/647 ... hin-groups
1731046307
Anonymous
У меня есть $row, который выводит следующее. Массив 0–4 не меняется для каждого пользователя, но последние элементы каждого массива необходимо сложить вместе. [code]array ( 0 => '2', 1 => 'Joe', 2 => 'Bloggs', 3 => 'joe.bloggs@mail.com', 4 => '1,2', 5 => 1, 6 => 0, 7 => 1, )array ( 0 => '2', 1 => 'Joe', 2 => 'Bloggs', 3 => 'joe.bloggs@mail.com', 4 => '1,2', 5 => 0, 6 => 1, 7 => 1, )array ( 0 => '1', 1 => 'Jane', 2 => 'Doe', 3 => 'jane.doe@mail.com', 4 => '1,4', 5 => 1, 6 => 0, 7 => 1, )array ( 0 => '1', 1 => 'Jane', 2 => 'Doe', 3 => 'jane.doe@mail.com', 4 => '1,4', 5 => 0, 6 => 0, 7 => 0, ) [/code] Мне нужно объединить их, чтобы они выглядели следующим образом: [code]Array ( [0] => 2 [1] => Joe [2] => Bloggs [3] => joe.bloggs@mail.com [4] => 1,2 [5] => 1 [6] => 1 [7] => 2 ) Array ( [0] => 1 [1] => Jane [2] => Doe [3] => jane.doe@mail.com [4] => 1,4 [5] => 1 [6] => 0 [7] => 1 ) [/code] Мой код на данный момент: [code]$combined = array(); foreach ($row as $item) { if (!array_key_exists($item[0], $combined)) { $combined[$item[0]] = $item; } else { array_push($combined, $item); } } [/code] Но это не то, чего я ожидаю. Подробнее здесь: [url]https://stackoverflow.com/questions/64787335/group-rows-of-a-2d-array-by-a-column-and-sum-numeric-columns-within-groups[/url]