Операции с массивами

145
05 января 2018, 00:14
$card = array ( 'Phones' => 
    [ "Apple" => 
                 [ 'price' => 5000,
                   'count' => 2,
                   'disc' => 500
                 ],
      "Sumsung" => 
                 [ 'price' => 4000,
                   'count' => 0,
                   'disc' => 0
                 ],
      "Xiaomi" => 
                  ['price' => 3500,
                   'count' => 1,
                   'disc' => 300
                  ]
    ],                   'TVs' => 
    [ "LG" => 
                  [ 'price' => 10000,
                    'count' => 1,
                    'disc' => 1000
                  ],
      "Sumsung" => 
                  [ 'price' => 8000,
                    'count' => 2,
                    'disc' => 0
                  ],
    ]
             );

Есть массив корзины, нужно посчитать общую сумму, price - цена товара, count - количество, disc - скидка.

Answer 1

Если вам нужна на выходе сумма за всю корзину, можно сделать простую функцию:

function totalPrice($card) {
    $total = 0;
    foreach ($card as $category => $items) {
        foreach ($items as $item) {
            $total += $item['price'] * $item['count'] - $item['disc'];
        }
    }
    return $total;
}

Тогда если взять ваш массив на выходе получим:

var_dump(totalPrice($card)); // 37700
Answer 2

Как вариант:

$priceAll = 0;
$countAll = 0;
$discAll = 0;
foreach($card['Phones'] as $product){
   $priceAll += $product['price'];
   $countAll += $product['count']; 
   $discAll += $product['disc']; 
}
READ ALSO
Работа с ООП и MySQL

Работа с ООП и MySQL

Добрый деньЕсть объект для работы с MySQL (например SafeMySQL), как с ним лучше работать в других объектах? Каждый раз при создание объекта добавлять...

195
Laravel сохранение действий пользователя за последние полгода

Laravel сохранение действий пользователя за последние полгода

Всем приветДелаю интернет-магазин, пользователи будут переходить по рекламе с utm-метками

138
Извлечь значение из объекта foreach

Извлечь значение из объекта foreach

Есть объект $price_varМоя задача вытащить у price значение где id = 144

218