EDI\Interpreter::processXmlSegment PHP Method

processXmlSegment() private method

Process an XML Segment
private processXmlSegment ( $elm, $message, &$segmentIdx, &$array, &$errors )
    private function processXmlSegment($elm, $message, &$segmentIdx, &$array, &$errors)
    {
        $segmentVisited = false;
        for ($i = 0; $i < $elm['maxrepeat']; $i++) {
            if ($message[$segmentIdx][0] == $elm['id']) {
                $jsonMessage = $this->processSegment($message[$segmentIdx], $this->xmlSeg, $segmentIdx, $errors);
                $segmentVisited = true;
                if (!isset($array[$jsonMessage['key']])) {
                    $array[$jsonMessage['key']] = $jsonMessage['value'];
                } else {
                    if (isset($array[$jsonMessage['key']]['segmentCode'])) {
                        $temp = $array[$jsonMessage['key']];
                        $array[$jsonMessage['key']] = [];
                        $array[$jsonMessage['key']][] = $temp;
                    }
                    $array[$jsonMessage['key']][] = $jsonMessage['value'];
                }
                $segmentIdx++;
            } else {
                if (!$segmentVisited && isset($elm['required'])) {
                    $errors[] = ["text" => $this->messageTextConf['MISSINGREQUIREDSEGMENT'], "position" => $segmentIdx, "segmentId" => $elm['id']->__toString()];
                }
                break;
            }
        }
    }