for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace PhpEarth\Stats\Util;
/**
* Merges sequential comments or replies.
*/
class Merger
{
* Set comments or replies to merge.
*
* @param array $data
public function setData($data)
$this->data = $data;
data
}
* Merges sequential comments or replies and return merged array for a given user.
* @param int $userId
* @return array
public function getMergedItems($userId)
$items = array_values($this->data);
$mergedItems = [];
$i = 0;
foreach ($items as $item) {
if ($item->getUser()->getId() == $userId) {
if (isset($items[$i-1]) && $items[$i-1]->getUser()->getId() == $userId) {
$item->setMessage($items[$i-1]->getMessage().$item->getMessage());
$item->setReactionsCount(max($item->getReactionsCount(), $items[$i-1]->getReactionsCount()));
unset($mergedItems[$i-1]);
$mergedItems[$i] = $item;
$i++;
$items = [];
foreach ($mergedItems as $item) {
$items[$item->getId()] = $item;
return $items;