bonjour,
J'ai un petit souci pour parcourir un multi tableau qui forme à lui seul une arborescence, voici un exemple avec printf
Ce tableau a pour but d'être inséré dans une table MySQL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Array ( [dossier1] => Array ( [sous dossier 1] => Array ( ) [sous dossier 2] => Array ( [Dachverein BSV Kickers Emden] => http://www.fcdv.de/ ) [Le Monde.fr : Actualités à la Une] => http://www.lemonde.fr/ ) [dossier2] => Array ( ) [Page de démarrage Mozilla Firefox] => http://www.google.fr/firefox?client=firefox-a&rls=org.mozilla:fr:official [Barre personnelle] => Array ( [Débuter avec Firefox] => http://fr.www.mozilla.com/fr/firefox/central/ ) )
suivant l'algorithme suivant:
-dossier1 [idD]
--[idDP] sous dossier 1 [idD]
ect .....
le sous dossier est référencé grâce à l'id du précédent et ainsi de suite pareil pour les favoris.
donc dans la table SQL on a idD | idD | nom |
Donc pour insèrer le tout il faut un code qui puisse parcourir le dossier en gardant cette arborescence (les ID son auto incrémenté)
Voilà une esquisse de code mais ceci ne respecte pas l'arborescence et pour cause il faudrait une fonction qui trouve le parent d'une clé comme array_flip()
mais pour une valeur en particulier
Ce code a donné ceci comme résultat toujours avec le tableau ci-dessus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 function lecturebootmark($bookmarks) { if (is_array($bookmarks) == true) { foreach ($bookmarks as $boot1) { echo '<'.count($boot1).'>'; if (is_array($boot1) == true) { echo 'D = >'.key($boot1).'<br />'; lecturebootmark($boot1); } else { echo 'F = >'.$boot1.'<br />'; } } } } lecturebootmark($bookmarks);
je suis aussi un peu perdu avec l'algorithme à utiliser c'est sûrement une question de récursivité mais je dois pas bien l'utiliser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <3>D = >sous dossier 1 <0>D = > <1>D = >Dachverein BSV Kickers Emden <1>F = >http://www.fcdv.de/ <1>F = >http://www.lemonde.fr/ <0>D = > <1>F = >http://www.google.fr/firefox?client=firefox-a&rls=org.mozilla:fr:official <1>D = >Débuter avec Firefox <1>F = >http://fr.www.mozilla.com/fr/firefox/central/
je donnerai plus de détails demain.
merci de votre aide
vinc
Partager