как суммировать значения массива с условием if - PullRequest
0 голосов
/ 08 сентября 2018

Я получил следующий массив из моего кода.

foreach($JobworkMaterialJson as $key => $value) { 
    $decode = json_decode($value->jobcard_jobwork_json); 
}

с помощью print_r ($ decode), я получил следующий результат, теперь я хочу суммировать значения с одинаковым идентификатором. например id = 6 Кол-во было бы 25. Помощь будет высоко ценится. Спасибо

<code><pre>Array(
[0] => stdClass Object
    (
        [id] => 9
        [qty] => 5
    )
)
Array
(
[0] => stdClass Object
    (
        [id] => 6
        [qty] => 10
    )

[1] => stdClass Object
    (
        [id] => 7
        [qty] => 5
    )
) 
Array
(
[0] => stdClass Object
    (
        [id] => 6
        [qty] => 15
    )
)

1 Ответ

0 голосов
/ 08 сентября 2018

Вы можете сделать это, используя ассоциативный массив (словарь) для отслеживания количества. Переберите все входные данные и обновите словарь.

Пример кода

<?php
$items = array(); // this should be the array you refer to in your question.

$dictionary = array();
foreach($items as $item) {
    if(array_key_exists($item->id, $dictionary)) {
        $dictionary[$item->id] += $item->qty;
    } else {
        $dictionary[$item->id] = $item->qty;
    }
}

$dictionary теперь содержит суммы. Например, $dictionary['6'] вернет 25.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...