PHP – значения суммы многомерного массива, если ключ соответствует [дубликат]Php

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

Сообщение Anonymous »

У меня есть многомерный массив, и я хотел бы «суммировать/сократить» его, чтобы все значения, соответствующие ключу, складывались, а остальные оставались такими же:

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

$payments = [
['bookingId' => 1, 'vendorId' => 3, 'amount' => 50],
['bookingId' => 1, 'vendorId' => 3, 'amount' => 85],
['bookingId' => 1, 'vendorId' => 4, 'amount' => 14],
];
Ожидаемый результат:

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

$payments = [
['bookingId' => 1, 'vendorId' => 3, 'amount' => 135],
['bookingId' => 1, 'vendorId' => 4, 'amount' => 14],
];
Я знаю, что могу добиться этого с помощью цикла, просто интересно, есть ли лучший способ сделать это:

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

$output = [];
foreach($payments as $value) {
if(!array_key_exists($value['vendorId', $output))
$output[$value['vendorId'] = [
'bookingId' => $value['bookingId'],
'vendorId' => $value['vendorId'],
'amount' => $value['amount']
];
else
$output[$value['vendorId']['amount'] += $value['amount'];
}
$payments = array_values($output);
В этом примере 'bookingId' всегда остается тем же, я включаю его в массив, потому что затем я буду использовать массив результатов для вставки в БД

Подробнее здесь: https://stackoverflow.com/questions/637 ... ey-matches
Ответить

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

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

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

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

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