-1

I have order list in array; I'd like to have total quantity of articles ordered, so I need to remove remove duplicates id and get values of those id

I have this array

Array
(
    [0] => stdClass Object
        (
            [reservations_detail_article] => 100
            [reservations_detail_qte] => 10
        )

    [1] => stdClass Object
        (
            [reservations_detail_article] => 294
            [reservations_detail_qte] => 400
        )

    [2] => stdClass Object
        (
            [reservations_detail_article] => 294
            [reservations_detail_qte] => 30
        )

    [3] => stdClass Object
        (
            [reservations_detail_article] => 346
            [reservations_detail_qte] => 2
        )

)

and I would like to have

Array
(
    [0] => stdClass Object
        (
            [reservations_detail_article] => 100
            [reservations_detail_qte] => 10
        )

    [1] => stdClass Object
        (
            [reservations_detail_article] => 294
            [reservations_detail_qte] => 430
        )

    [2] => stdClass Object
        (
            [reservations_detail_article] => 346
            [reservations_detail_qte] => 2
        )



)

I already deleted dupluicates, but cannot have good total of quantity

Shafiqul Islam
  • 5,570
  • 2
  • 34
  • 43
Nathan
  • 243
  • 1
  • 3
  • 12

1 Answers1

2

try this, it will check that this key already exit if exit then sum value .if array stdClass Object then

$result = array();
foreach ($data as $val) {
    if (!isset($result[$val->reservations_detail_article]))
        $result[$val->reservations_detail_article] = $val;
    else
        $result[$val->reservations_detail_article]['reservations_detail_qte'] += $val['reservations_detail_qte'];
}
$result = array_values($result); 
print_r($result);

if associative then

$result = array();
foreach ($data as $val) {
    if (!isset($result[$val['reservations_detail_article']]))
        $result[$val['reservations_detail_article']] = $val;
    else
        $result[$val['reservations_detail_article']]['reservations_detail_qte'] += $val['reservations_detail_qte'];
}
$result = array_values($result); 
print_r($result);
Shafiqul Islam
  • 5,570
  • 2
  • 34
  • 43
  • Let's say that a second key must be matched besides "reservations_detail_article", like "reservations_detail_category". Can it be handled in this way too? – Luciano Jun 18 '20 at 00:10