сложить два массива

123
17 января 2020, 18:30

В цикле собираю массива такого формата:

Array
(
[0] => Array
    (
        [0] => 03.2019
        [1] => 620000
    )
[1] => Array
    (
        [0] => 03.2019
        [1] => 138269.56
    )
[2] => Array
    (
        [0] => 03.2019
        [1] => 430015.2
    )
[3] => Array
    (
        [0] => 02.2019
        [1] => 643331.99
    )
)

как сделать сравнение значений [0] => 03.2019 и если они одинаковые сложить все значения [1] => 620000 ?

т/е в данном примере три одинаковые даты вот и надо сложить между собой [1] => 620000 + [1] => 138269.56 + [1] => 430015.2

Answer 1

Я бы советовал ключи добавлять вместо индексного массива, может поламаться всё случайно, но я бы сделал вот так:

$array = [
    [
        '03.2019', '620000'
    ],
    [
        '03.2019', '138269.56'
    ],
    [
        '03.2019', '430015.2'
    ],
    [
        '02.2019', '643331.99'
    ]
];
$result = [];
foreach ($array as $item) {
    [$date, $amount] = $item;
    if (empty($result[$date])) {
        $result[$date] = [$date, $amount];
    }
    $result[$date][1] += $amount;
}
var_dump(array_values($result)); // Если ключи не важны, можно убрать array_values

На выходе получаем:

array(2) {
  [0] =>
  array(2) {
    [0] =>
    string(7) "03.2019"
    [1] =>
    double(1808284.76)
  }
  [1] =>
  array(2) {
    [0] =>
    string(7) "02.2019"
    [1] =>
    double(1286663.98)
  }
}
READ ALSO
Поиск url в тексте и превращение его в <a>

Поиск url в тексте и превращение его в <a>

Есть вот такой код, он работает, но если есть <br />, то к url прибавляются частички от <br />

120
Скрыть class после успешной заявки для всех пользователей на сайте

Скрыть class после успешной заявки для всех пользователей на сайте

Помогите решить такой вопросНа сайте будет очень простой конкурс, на одной из страниц сайта будет расположена кнопка с классом (

136
Запрос Eloquent

Запрос Eloquent

Есть вот такая структура:

129
SetWindowsHookExA на функцию член класса

SetWindowsHookExA на функцию член класса

Пытаюсь отловить WM_ENTERSIZEMOVE и WM_EXITSIZEMOVE сообщения для окна, дескриптор которого является членом классаДля этого использую SetWindowsHookExA с параметром...

150