PHP在foreach单独中求和值

PHP在foreach单独中求和值,php,arrays,Php,Arrays,嗨,我是php新手,当我需要在foreach中汇总数组时,我遇到了一些问题 我有这样的数组: $arrays = [ [ 'orderid' => "1", 'price' => "100" 'rate' => "1" ], [

嗨,我是php新手,当我需要在foreach中汇总数组时,我遇到了一些问题

我有这样的数组:

  $arrays = [
                [
                      'orderid' => "1",
                      'price' => "100"
                      'rate' => "1"
                ],
                [
                      'orderid' => "2",
                      'price' => "200"
                      'rate' => "5"
                ],

       ];
当我使用foreach时,我面对的是,price*rate将连续相加,但不会单独相加

     $bonus = array();
     foreach($arrays as $data){
           $bonus = $data['originalPrice'] * $data['rate'];
       }

我也尝试过使用
array\u map()
,但也无法得到答案

我需要的是:

$array = [
[
   'total' => 100;
],
[
   'total' => 1000;
]


]
想帮忙吗


更新:所有答案都已更正,是api数据给了我错误的信息lol。

Foreach很好,但您需要添加到奖金数组,而不是覆盖结果:

 foreach($arrays as $data){
       $bonus[]['total'] = $data['price'] * $data['rate'];
   }
  print_r($bonus);
$bonus = array();
 foreach($arrays as $data){
       $bonus[] = array('total' => $data['originalPrice'] * $data['rate']);
   }

这是将数组添加到
奖金
数组。

您使用的是
价格
,因此使用该属性,您需要在结果数组中推送值。因此,您需要执行以下操作:

<?php
$arrays=array(
 array(
    'orderid' => "1",
    'price' => "100",
    'rate' => "1"
  ),
  array(
    'orderid' => "2",
    'price' => "200",
    'rate' => "5"
  )
);
$bonus = array();
foreach($arrays as $data){
 array_push($bonus,$data['price'] * $data['rate']);
}
print_r($bonus);
?>


您可以在

测试此代码。您可以使用array\u push()函数将一个或多个元素插入数组的末尾。只需使用
$bonus[]=
而不是
$bonus=
。它仍将继续添加