Как сложить результаты цикла foreach

284
26 октября 2017, 10:30

Здравствуйте, подскажите, есть следующая конструкция, выводящая поочередно цены товаров, умноженные на количество товаров...

foreach ($order['product'] as $product) {
     echo ($product['price']*$product['quantity']);
} 

а как получить итоговую сумму по всем товарам?

Сейчас получаю на выходе цифры 1000 2000 1500 2300 - а нужна общая сумма.

Answer 1

в качестве альтернативного варианта:

$result = array_sum(array_map(function($o){ 
                          return $o['price'] * $o['quantity']; 
                      },
                      $orders));

вариант получше:

$result = array_reduce($orders, function($sum, $o){ 
                         return $sum + $o['price'] * $o['quantity']
                      }, 0);
Answer 2
$sum = 0;
foreach ($order['product'] as $product) {
    echo ((int)$product['price']*(int)$product['quantity']);
    $sum += (int)$product['price']*(int)$product['quantity'];
}
echo $sum; 
Answer 3
$summ = 0;
foreach ($order['product'] as $product) {
    $summ += (float)$product['price'] * (float)$product['quantity'];
}
echo $summ; 
READ ALSO
Проблема с записью картинки в файл

Проблема с записью картинки в файл

Проблема заключается в следующем, я получаю из 1С картинку в виде текста, выглядит это как картинка открытая через notepad, записываю её через:

233
Необычный редирект на PHP (или JS)

Необычный редирект на PHP (или JS)

Есть проектВ нем много почти одинаковых страниц

229
Получить только год из строки

Получить только год из строки

Есть строка типа 2502

180
Получение последнего дня месяца по его номеру

Получение последнего дня месяца по его номеру

Как по номеру месяца получить его последний день? Написал такой код:

136