Как перебирать данные многомерного массива и суммировать некоторые значения, чтобы вернуть сгруппированный массивPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как перебирать данные многомерного массива и суммировать некоторые значения, чтобы вернуть сгруппированный массив

Сообщение Anonymous »

Каков самый простой и требующий меньших вычислительных мощностей способ проверить, имеет ли многомерный массив одинаковые значения в дополнительных ключах, и, если это так, подсчитать сумму?
Посмотрите на введенные данные. Это примерно так:

Код: Выделить всё

$array[] = ['number' => 1, 'values' => ['a' => 1, 'b' => 2]];
$array[] = ['number' => 2, 'values' => ['a' => 4, 'b' => 1]];
$array[] = ['number' => 2, 'values' => ['a' => 1, 'b' => 4]]; // same "number" as the previous so get the sum between "a" of the previous and "a" of this, the same for "b"
$array[] = ['number' => 2, 'values' => ['a' => 1, 'b' => 1]]; // same "number" as the previous so get the sum between "a" of the previous and "a" of this, the same for "b"
$array[] = ['number' => 3, 'values' => ['a' => 2, 'b' => 4]];
Итак, результат должен быть

Код: Выделить всё

$array[0] : ['number' => 1, 'values' => ['a' => 1, 'b' => 2]];
$array[1] : ['number' => 2, 'values' => ['a' => 6, 'b' => 6]]; //a = 4 + 1 + 1     //b = 1 + 4 + 1
$array[2] : ['number' => 3, 'values' => ['a' => 2, 'b' => 4]];
Честно говоря, мне трудно сделать это даже с помощью простого foreach.
Мой мозг может зайти только до определенного момента и не дальше. >

Код: Выделить всё

$array_output = [];
foreach ($array as $k => $v){
foreach ($array as $kk => $vv){
if ($v['number'] == $vv['number']) {
// ????
}
}
}
Кто-нибудь мне поможет?

Еще один вопрос в том же вопросе
Как сделайте то же самое для

Код: Выделить всё

$array[] = ['number' => 1, 'a' => 1, 'b' => 2];
$array[] = ['number' => 2, 'a' => 4, 'b' => 1];
$array[] = ['number' => 2, 'a' => 1, 'b' => 4];
$array[] = ['number' => 2, 'a' => 1, 'b' => 1];
$array[] = ['number' => 3, 'a' => 2, 'b' => 4];
так как же получить сумму для одного и того же номера переменной для переменных a и b?

Подробнее здесь: https://stackoverflow.com/questions/792 ... urn-a-grou
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»