original_string: private function combineRecords(array $records): array
      {
          $batchRecord = null;
          $batchRecords = [];
          $messages = [];
          $formattedMessages = [];
          $level = 0;
          $levelName = null;
          $datetime = null;
  
          foreach ($records as $record) {
              $record = $this->processRecord($record);
  
              if ($record['level'] > $level) {
                  $level = $record['level'];
                  $levelName = $record['level_name'];
              }
  
              if (null === $datetime) {
                  $datetime = $record['datetime'];
              }
  
              $messages[] = $record['message'];
              $messageStr = implode(PHP_EOL, $messages);
              $formattedMessages[] = $this->getFormatter()->format($record);
              $formattedMessageStr = implode('', $formattedMessages);
  
              $batchRecord = [
                  'message'   => $messageStr,
                  'formatted' => $formattedMessageStr,
                  'context'   => [],
                  'extra'     => [],
              ];
  
              if (!$this->validateStringLength($batchRecord['formatted'], static::MAXIMUM_MESSAGE_LENGTH)) {
                  // Pop the last message and implode the remaining messages
                  $lastMessage = array_pop($messages);
                  $lastFormattedMessage = array_pop($formattedMessages);
                  $batchRecord['message'] = implode(PHP_EOL, $messages);
                  $batchRecord['formatted'] = implode('', $formattedMessages);
  
                  $batchRecords[] = $batchRecord;
                  $messages = [$lastMessage];
                  $formattedMessages = [$lastFormattedMessage];
  
                  $batchRecord = null;
              }
          }
  
          if (null !== $batchRecord) {
              $batchRecords[] = $batchRecord;
          }
  
          // Set the max level and datetime for all records
          foreach ($batchRecords as &$batchRecord) {
              $batchRecord = array_merge(
                  $batchRecord,
                  [
                      'level'      => $level,
                      'level_name' => $levelName,
                      'datetime'   => $datetime,
                  ]
              );
          }
  
          return $batchRecords;
      }
code: private function combineRecords(array $records): array
      {
          $batchRecord = null;
          $batchRecords = [];
          $messages = [];
          $formattedMessages = [];
          $level = 0;
          $levelName = null;
          $datetime = null;
  
          foreach ($records as $record) {
              $record = $this->processRecord($record);
  
              if ($record['level'] > $level) {
                  $level = $record['level'];
                  $levelName = $record['level_name'];
              }
  
              if (null === $datetime) {
                  $datetime = $record['datetime'];
              }
  
              $messages[] = $record['message'];
              $messageStr = implode(PHP_EOL, $messages);
              $formattedMessages[] = $this->getFormatter()->format($record);
              $formattedMessageStr = implode('', $formattedMessages);
  
              $batchRecord = [
                  'message'   => $messageStr,
                  'formatted' => $formattedMessageStr,
                  'context'   => [],
                  'extra'     => [],
              ];
  
              if (!$this->validateStringLength($batchRecord['formatted'], static::MAXIMUM_MESSAGE_LENGTH)) {
                  // Pop the last message and implode the remaining messages
                  $lastMessage = array_pop($messages);
                  $lastFormattedMessage = array_pop($formattedMessages);
                  $batchRecord['message'] = implode(PHP_EOL, $messages);
                  $batchRecord['formatted'] = implode('', $formattedMessages);
  
                  $batchRecords[] = $batchRecord;
                  $messages = [$lastMessage];
                  $formattedMessages = [$lastFormattedMessage];
  
                  $batchRecord = null;
              }
          }
  
          if (null !== $batchRecord) {
              $batchRecords[] = $batchRecord;
          }
  
          // Set the max level and datetime for all records
          foreach ($batchRecords as &$batchRecord) {
              $batchRecord = array_merge(
                  $batchRecord,
                  [
                      'level'      => $level,
                      'level_name' => $levelName,
                      'datetime'   => $datetime,
                  ]
              );
          }
  
          return $batchRecords;
      }
code_tokens: private function combineRecords ( array $ records ) : array { $ batchRecord = null ; $ batchRecords = [ ] ; $ messages = [ ] ; $ formattedMessages = [ ] ; $ level = 0 ; $ levelName = null ; $ datetime = null ; foreach ( $ records as $ record ) { $ record = $ this -> processRecord ( $ record ) ; if ( $ record [ 'level' ] > $ level ) { $ level = $ record [ 'level' ] ; $ levelName = $ record [ 'level_name' ] ; } if ( null === $ datetime ) { $ datetime = $ record [ 'datetime' ] ; } $ messages [ ] = $ record [ 'message' ] ; $ messageStr = implode ( PHP_EOL , $ messages ) ; $ formattedMessages [ ] = $ this -> getFormatter ( ) -> format ( $ record ) ; $ formattedMessageStr = implode ( '' , $ formattedMessages ) ; $ batchRecord = [ 'message' => $ messageStr , 'formatted' => $ formattedMessageStr , 'context' => [ ] , 'extra' => [ ] , ] ; if ( ! $ this -> validateStringLength ( $ batchRecord [ 'formatted' ] , static :: MAXIMUM_MESSAGE_LENGTH ) ) { // Pop the last message and implode the remaining messages $ lastMessage = array_pop ( $ messages ) ; $ lastFormattedMessage = array_pop ( $ formattedMessages ) ; $ batchRecord [ 'message' ] = implode ( PHP_EOL , $ messages ) ; $ batchRecord [ 'formatted' ] = implode ( '' , $ formattedMessages ) ; $ batchRecords [ ] = $ batchRecord ; $ messages = [ $ lastMessage ] ; $ formattedMessages = [ $ lastFormattedMessage ] ; $ batchRecord = null ; } } if ( null !== $ batchRecord ) { $ batchRecords [ ] = $ batchRecord ; } // Set the max level and datetime for all records foreach ( $ batchRecords as & $ batchRecord ) { $ batchRecord = array_merge ( $ batchRecord , [ 'level' => $ level , 'level_name' => $ levelName , 'datetime' => $ datetime , ] ) ; } return $ batchRecords ; }
docstring: Combines multiple records into one. Error level of the combined record
  will be the highest level from the given records. Datetime will be taken
  from the first record.
docstring_tokens: Combines multiple records into one . Error level of the combined record will be the highest level from the given records . Datetime will be taken from the first record .