code: protected function splitTransactions($text)
      {
          $offset = 0;
          $length = 0;
          $position = 0;
          $transactions = array();
  
          while ($line = $this->getLine('61', $text, $offset, $offset, $length)) {
              $offset += 4 + $length + 2;
              $transaction = array($line);
  
              // See if the next description line belongs to this transaction line.
              // The description line should immediately follow the transaction line.
              $description = array();
              while ($line = $this->getLine('86', $text, $offset, $position, $length)) {
                  if ($position == $offset) {
                      $offset += 4 + $length + 2;
                      $description[] = $line;
                  } else {
                      break;
                  }
              }
  
              if ($description) {
                  $transaction[] = implode("\r\n", $description);
              }
  
              $transactions[] = $transaction;
          }
  
          return $transactions;
      }
docs: Split transactions and their descriptions from the statement text
  
  Returns a nexted array of transaction lines. The transaction line text
  is at offset 0 and the description line text (if any) at offset 1.
  
  @param string $text Statement text
  @return array Nested array of transaction and description lines