PHP объединяет несколько строк, если дублирует значение в ячейках - PullRequest
0 голосов
/ 27 июня 2019

Я извлекаю строки из базы данных MySQL.Каждая строка содержит дату и сумму (в долларах США).Некоторые даты идентичны.Я часами пытался объединить количество этих строк с одинаковыми датами.

Я пробовал 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 голосов
/ 27 июня 2019

Лучший способ сделать это - использовать group by в запросе MySQL, упомянутом @barmar в комментариях.

Если вы действительно хотите сделать это в PHP, вы можете использовать следующий код

$finalArray=[];
while($row2 = mysqli_fetch_array($result3)) {
  $finalArray[$row2[1]] = $finalArray[$row2[1]] ? $finalArray[$row2[1]] +$row2[2] : $row2[2];
};
0 голосов
/ 27 июня 2019

Используйте базу данных, это наименее дорогостоящий способ решения вашей проблемы.XD

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