在foreach循环中如何将PHP值相加

3

您好,我是新手 PHP 程序员。在使用 foreach 循环对数组求和时,遇到了一些问题。

我有如下数组:

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

       ];

当我使用foreach时,价格 * 比率将不断累加,而不是分别相加。
     $bonus = array();
     foreach($arrays as $data){
           $bonus = $data['originalPrice'] * $data['rate'];
       }


我也尝试使用 array_map(),但仍然得不到我的答案;
关于我所需的内容:
$array = [
[
   'total' => 100;
],
[
   'total' => 1000;
]


]

有任何需要帮助的想法吗?

更新:所有答案都正确,API数据给了我错误的信息。


你可以使用array_push()函数将一个或多个元素插入到数组的末尾。 - Au Nguyen
只需使用 $bonus[] = 而不是 $bonus = - arkascha
3个回答

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

仍然是一样的,它将会继续添加。 - coke990

0

使用foreach是可以的,但你需要将结果添加到奖金数组中,而不是覆盖它:

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

这是将数组添加到bonus数组中。


0

你正在使用 price 属性,因此需要将该值推送到结果数组中。因此,你需要执行以下操作:

<?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);
?>

您可以在http://www.writephponline.com/上测试此代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接