如果单元格中有重复值,则PHP会合并几行

时间:2019-06-27 16:59:56

标签: php arrays merge duplicates

我正在从MySQL数据库中提取行。每行包含一个日期和一个金额(USD)。一些日期是相同的。我已经尝试了几个小时,以合并具有相同日期的那些行的数量。

我尝试过array_merge以及服务器化if语句,foreach以及while。

while($row2 = mysqli_fetch_array($result3)) {

  array_push($mergeDuplicateDate,
    array(                                   
      $row2[1], //date                                                                           
      $row2[2] //amount
    )
  );

};

如果输出如下:

06-25-2019, $5

06-25-2019, $10

06-26-2019, $2

06-26-2019, $1

我希望将其总结为:

06-25-2019, $15

06-26-2019, $3

我知道使用PHP并非难事,但我对编程并不精通。到目前为止,我可以用谷歌搜索遇到的任何问题。这次我似乎找不到答案。我什至不知道从哪里开始解决这个问题。

在此先感谢任何将其分解给我的人!

2 个答案:

答案 0 :(得分:0)

使用数据库,这是解决问题的计算成本最低的方法。 XD

SELECT date ,SUM(amount) FROM table GROUP BY date ASC                                                                    

答案 1 :(得分:0)

最好的方法是在@barmar注释中提到的MySQL查询中使用group by。

如果您真的想用PHP做到这一点,则可以使用以下代码

$finalArray=[];
while($row2 = mysqli_fetch_array($result3)) {
  $finalArray[$row2[1]] = $finalArray[$row2[1]] ? $finalArray[$row2[1]] +$row2[2] : $row2[2];
};