public static function splitMultiMessage($ediMessage)
{
$splicedMessages = [];
$rawSegments = self::unwrap($ediMessage);
//var_dump($rawSegments);
$message = [];
$unb = false;
foreach ($rawSegments as $segment) {
if (substr($segment, 0, 3) == 'UNB') {
$unb = $segment;
continue;
}
if (substr($segment, 0, 3) == 'UNH') {
if ($unb) {
$message[] = $unb;
}
$message[] = $segment;
continue;
}
if (substr($segment, 0, 3) == 'UNT') {
$message[] = $segment;
$splicedMessages[] = $message;
$message = [];
continue;
}
if ($message) {
$message[] = $segment;
continue;
}
}
if (substr($segment, 0, 3) == 'UNZ') {
$segment = preg_replace('#UNZ\\+\\d+\\+#', 'UNZ+1+', $segment);
foreach ($splicedMessages as $k => $message) {
$splicedMessages[$k][] = $segment;
}
}
foreach ($splicedMessages as $k => $message) {
$splicedMessages[$k] = implode(PHP_EOL, $splicedMessages[$k]);
}
return $splicedMessages;
}