1
1
<?php
2
2
/**
3
3
* EDIFACT Messages Interpreter
4
- * (c)2016 Stefano Sabatini
4
+ * (c) 2018 Stefano Sabatini
5
5
*/
6
6
7
7
namespace EDI ;
@@ -175,7 +175,7 @@ private function loopMessage($message, $xml, &$errors)
175
175
}
176
176
177
177
/**
178
- * Proccess an XML Group
178
+ * Process an XML Group
179
179
*
180
180
*/
181
181
public function processXmlGroup ($ elm , $ message , &$ segmentIdx , &$ array , &$ errors )
@@ -212,16 +212,7 @@ private function processXmlSegment($elm, $message, &$segmentIdx, &$array, &$erro
212
212
if ($ message [$ segmentIdx ][0 ] == $ elm ['id ' ]) {
213
213
$ jsonMessage = $ this ->processSegment ($ message [$ segmentIdx ], $ this ->xmlSeg , $ segmentIdx , $ errors );
214
214
$ segmentVisited = true ;
215
- if (!isset ($ array [$ jsonMessage ['key ' ]])) {
216
- $ array [$ jsonMessage ['key ' ]] = $ jsonMessage ['value ' ];
217
- } else {
218
- if (isset ($ array [$ jsonMessage ['key ' ]]['segmentCode ' ]) || $ jsonMessage ['key ' ] === 'UnrecognisedType ' ) {
219
- $ temp = $ array [$ jsonMessage ['key ' ]];
220
- $ array [$ jsonMessage ['key ' ]] = [];
221
- $ array [$ jsonMessage ['key ' ]][] = $ temp ;
222
- }
223
- $ array [$ jsonMessage ['key ' ]][] = $ jsonMessage ['value ' ];
224
- }
215
+ $ this ->doAddArray ($ array , $ jsonMessage );
225
216
$ segmentIdx ++;
226
217
} else {
227
218
if (!$ segmentVisited && isset ($ elm ['required ' ])) {
@@ -236,6 +227,25 @@ private function processXmlSegment($elm, $message, &$segmentIdx, &$array, &$erro
236
227
}
237
228
}
238
229
230
+ /**
231
+ * Adds a processed segment to the current group
232
+ *
233
+ * @param $array A reference to the group
234
+ * @param $jsonMessage A segment processed by processSegment()
235
+ */
236
+ private function doAddArray (&$ array , $ jsonMessage ) {
237
+ if (!isset ($ array [$ jsonMessage ['key ' ]])) {
238
+ $ array [$ jsonMessage ['key ' ]] = $ jsonMessage ['value ' ];
239
+ } else {
240
+ if (isset ($ array [$ jsonMessage ['key ' ]]['segmentCode ' ]) || $ jsonMessage ['key ' ] === 'UnrecognisedType ' ) {
241
+ $ temp = $ array [$ jsonMessage ['key ' ]];
242
+ $ array [$ jsonMessage ['key ' ]] = [];
243
+ $ array [$ jsonMessage ['key ' ]][] = $ temp ;
244
+ }
245
+ $ array [$ jsonMessage ['key ' ]][] = $ jsonMessage ['value ' ];
246
+ }
247
+ }
248
+
239
249
/**
240
250
* Add human readable keys as in Analyser
241
251
*
0 commit comments