bonjour,

J'ai un petit souci pour parcourir un multi tableau qui forme à lui seul une arborescence, voici un exemple avec printf
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/
        )
 
)
Ce tableau a pour but d'être inséré dans une table MySQL
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
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);
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
<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 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.
je donnerai plus de détails demain.

merci de votre aide
vinc