Как преобразовать обычный текст во вложенный массив в PHP? - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть инструмент поставщика, который выводит команду в виде простого текста.Я пытаюсь как-то отформатировать это во вложенный массив, но не могу понять логику в моей голове.

Каждая строка имеет следующий формат: NESTING_LEVEL JOBNAME IN APPL APPLICATION (TYPE) MESSAGE

Каждый узел такжедолжны иметь эти 3 значения JOBNAME, APPLICATION и MESSAGE

Пример 1: перечисление всех предшественников для задания J3.

PREDECESSORS FOR JOB J3 IN APPL AA.8
1  J2 IN APPL AA.8 (EXTERNAL) HOME JOB FOUND
2   J2 IN APPL AC.1 (HOME) IS HELD
1  J3 IN APPL AA.7 (ANCESTOR) WAITING FOR ANCESTOR
2   J2 IN APPL AA.7 (EXTERNAL) HOME JOB FOUND
3    J2 IN APPL AC.1 (HOME) (DUPLICATE) IS HELD
2   J3 IN APPL AA.6 (ANCESTOR) WAITING FOR ANCESTOR
3    J2 IN APPL AA.6 (EXTERNAL) HOME JOB FOUND
4     J2 IN APPL AC.1 (HOME) (DUPLICATE) IS HELD
3    J3 IN APPL AA.5 (ANCESTOR) NOT STARTED
4     J2 IN APPL AA.5 (EXTERNAL) HOME JOB FOUND
5      J2 IN APPL AC.1 (HOME) (DUPLICATE) IS HELD
2   J3 IN APPL AA.5 (ANCESTOR) (DUPLICATE) NOT STARTED
1  J3 IN APPL AA.6 (ANCESTOR) (DUPLICATE) WAITING FOR ANCESTOR
1  J3 IN APPL AA.5 (ANCESTOR) (DUPLICATE) NOT STARTED
8 PREDECESSORS FOUND IN 5 APPLICATIONS
END OF PREDECESSORS

Пример 2: перечисление всех преемников дляРабота J2

SUCCESSORS FOR JOB J2 IN APPL AC.1
1  J2 IN APPL AA.8 (EXTERNAL) HOME JOB FOUND
2   J3 IN APPL AA.8 WAITING FOR ANCESTOR
1  J2 IN APPL AA.7 (EXTERNAL) HOME JOB FOUND
2   J3 IN APPL AA.7 WAITING FOR ANCESTOR
3    J3 IN APPL AA.8 (DUPLICATE) WAITING FOR ANCESTOR
1  J2 IN APPL AA.6 (EXTERNAL) HOME JOB FOUND
2   J3 IN APPL AA.6 WAITING FOR ANCESTOR
3    J3 IN APPL AA.8 (DUPLICATE) WAITING FOR ANCESTOR
3    J3 IN APPL AA.7 (DUPLICATE) WAITING FOR ANCESTOR
1  J2 IN APPL AA.5 (EXTERNAL) HOME JOB FOUND
2   J3 IN APPL AA.5 NOT STARTED
3    J3 IN APPL AA.8 (DUPLICATE) WAITING FOR ANCESTOR
3    J3 IN APPL AA.7 (DUPLICATE) WAITING FOR ANCESTOR
3    J3 IN APPL AA.6 (DUPLICATE) WAITING FOR ANCESTOR
1  J4 IN APPL AC.1 NOT STARTED
2   J4 IN APPL AA.8 (EXTERNAL) HOME JOB FOUND
3    J5 IN APPL AA.8 WAITING FOR ANCESTOR
2   J4 IN APPL AA.7 (EXTERNAL) HOME JOB FOUND
3    J5 IN APPL AA.7 WAITING FOR ANCESTOR
4     J5 IN APPL AA.8 (DUPLICATE) WAITING FOR ANCESTOR
2   J4 IN APPL AA.6 (EXTERNAL) HOME JOB FOUND
3    J5 IN APPL AA.6 WAITING FOR ANCESTOR
4     J5 IN APPL AA.8 (DUPLICATE) WAITING FOR ANCESTOR
4     J5 IN APPL AA.7 (DUPLICATE) WAITING FOR ANCESTOR
2   J4 IN APPL AA.5 (EXTERNAL) HOME JOB FOUND
3    J5 IN APPL AA.5 NOT STARTED
4     J5 IN APPL AA.8 (DUPLICATE) WAITING FOR ANCESTOR
4     J5 IN APPL AA.7 (DUPLICATE) WAITING FOR ANCESTOR
4     J5 IN APPL AA.6 (DUPLICATE) WAITING FOR ANCESTOR
2   J3 IN APPL AC.1 NOT STARTED
18 SUCCESSORS FOUND IN 5 APPLICATIONS
END OF SUCCESSORS

Как я могу это сделать?

...