J'ai un document texte au format hiérarchique pouvant contenir jusqu'à 6 niveaux.Construction d'un tableau imbriqué
.step1 -- step 1. text
..step2 -- step 1. A. text
..step2 -- step 1. B. text
..step2 -- step 1. C. text
..step2 -- step 1. D. text
..step2 -- step 1. E. text
.step1 -- step 2. text
..step2 -- step 2. A. text
...step3 -- step 2. A. (1) text
...step3 -- step 2. A. (2) text
.step1 -- step 3. text
Je l'analyse du document texte avec regex et la construction d'un tableau qui est structuré comme celui-ci
$contentsArray structure
'level' INT - the step level
'type' STRING - the type of tag, note, warning, step1, step2
'line' INT - the line number in the file
'text' STRING - the text
------ SAMPLE ARRAY -------
[0] => Array
(
[level] => 1
[type] => step1
[line] => 8
[text] => Step 1. text
)
[1] => Array
(
[level] => 2
[type] => step2
[line] => 10
[text] => Step 1. A. text
)
[2] => Array
(
[level] => 2
[type] => step2
[line] => 12
[text] => Step 1.B. text
)
[3] => Array
(
[level] => 2
[type] => step2
[line] => 14
[text] => Step 1. C. text.
)
[4] => Array
(
[level] => 2
[type] => step2
[line] => 16
[text] => Step 1. D. text.
)
[5] => Array
(
[level] => 2
[type] => step2
[line] => 18
[text] => Step 1. E. text.
)
[6] => Array
(
[level] => 1
[type] => step1
[line] => 20
[text] => Step 2. text
)
[7] => Array
(
[level] => 2
[type] => step2
[line] => 22
[text] => Step 2. A. Text.
)
[8] => Array
(
[level] => 3
[type] => step3
[line] => 26
[text] => Step 2. A. (1) Text.
)
[9] => Array
(
[level] => 3
[type] => step3
[line] => 28
[text] => Step 3. A. (2) Text.
)
[10] => Array
(
[level] => 1
[type] => step1
[line] => 30
[text] => Step 3. Text
)
L'objectif final est de transformer cela en un document XML imbriqué. Je pense que ce dont j'ai besoin est de construire un tableau imbriqué que je peux ensuite convertir en XML. Je pense que la structure de ce tableau serait quelque chose comme
[0] => Array
(
[level] => 1
[type] => step1
[line] => 8
[text] => Step 1. text
), Array
(
[level] => 2
[type] => step2
[line] => 10
[text] => Step 1. A. text
), Array
(
[level] => 2
[type] => step2
[line] => 12
[text] => Step 1.B. text
), Array
(
[level] => 2
[type] => step2
[line] => 14
[text] => Step 1. C. text.
), Array
(
[level] => 2
[type] => step2
[line] => 16
[text] => Step 1. D. text.
), Array
(
[level] => 2
[type] => step2
[line] => 18
[text] => Step 1. E. text.
)
)
[1] => Array
(
[level] => 1
[type] => step1
[line] => 20
[text] => Step 2. text
, Array
(
[level] => 2
[type] => step2
[line] => 22
[text] => Step 2. A. Text.
, Array
(
[level] => 3
[type] => step3
[line] => 26
[text] => Step 2. A. (1) Text.
), Array
(
[level] => 3
[type] => step3
[line] => 28
[text] => Step 3. A. (2) Text.
)
)
)
[2] => Array
(
[level] => 1
[type] => step1
[line] => 30
[text] => Step 3. Text
)
Ce que je besoin est une aide sur une méthode en boucle à travers le réseau que j'ai construit et utiliser la valeur level
pour comprendre l'imbrication dans le tableau finale . Mes tentatives ont été plutôt infructueuses jusqu'à maintenant. J'ai l'impression qu'il existe une façon récursive ou itérative de le faire, mais ce n'est pas mon fort.
Merci pour l'aide et j'espère que cette question est assez claire.
MISE À JOUR LA QUESTION Je vois que j'ai fait un très mauvais travail en posant la question, j'ai donc fait quelques modifications.
Si vous utilisez PHP, vous devez étiqueter la question avec la balise 'php' – alfasin
Je le fais en PHP mais pour moi c'est plus une question technique. –
Vous décrivez un tableau associatif avec 4 propriétés, mais où se trouve la partie "texte" dans votre entrée, et comment votre tableau a-t-il juste une propriété "texte" et pas les 3 autres? – trincot