EDI\Reader::groupsExtract PHP Method

groupsExtract() public method

get groups from message when last segment is unknown but you know the barrier useful for invoices by default
public groupsExtract ( type $start = 'LIN', type $barrier = ['UNS'] ) : boolean/array
$start type first segment start a new group
$barrier type barrier segment (NOT in group)
return boolean/array
    public function groupsExtract($start = 'LIN', $barrier = array('UNS'))
    {
        $groups = array();
        $group = array();
        $position = 'before_search';
        foreach ($this->getParsedFile() as $edi_row) {
            $segment = $edi_row[0];
            if ($position == 'group_is' && ($segment == $start || in_array($segment, $barrier))) {
                // end of group
                $groups[] = $group;
                // start new group
                $group = array();
                $position = 'group_finish';
            }
            if ($segment == $start) {
                $position = 'group_is';
            }
            // add element to group
            if ($position == 'group_is') {
                $group[] = $edi_row;
            }
            //echo $edi_row[0] . ' ' . $position . PHP_EOL;
        }
        return $groups;
    }