IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Parcourir un multitableau associatif


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Points : 66
    Points
    66
    Par défaut Parcourir un multitableau associatif
    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

  2. #2
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Salut,
    Il faut pas une virgule entre tes valeur de tableau???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    [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/
            )

  3. #3
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Points : 66
    Points
    66
    Par défaut
    Comme je l'ai stipulé plus haut c'est le résulta de printf, c'est un exemple pour essayer de mieux comprendre le problème.

  4. #4
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Ben le mieux serait d'avoir le code! A moin que tu sois sur de ton tableau...
    Mais le fct recursive me parait correcte

  5. #5
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Points : 66
    Points
    66
    Par défaut
    tu voudrait avoir le code qui génère le tableau ?

  6. #6
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Oui, je pense que l'erreur viens des index du tableau plutot que sur la fonction récursive. C'est en première vue, rien de sur...

  7. #7
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Points : 66
    Points
    66
    Par défaut
    le tableau a été généré par analyse regex d'un fichier html:
    code php
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    function dl_bookmarks(&$array, $start=true, $title=0)
    {
      static $regex_dir = '@>([^<>]+)</H3>@i';
      static $regex_ref = '@HREF="([^"]+)"[^>]+>([^<>]+)</A>@i';
      static $i,$j = null;
     
      if ($start) {
        $i = 0;
        $j = count($array);
      }
      else ++$i;
     
      $titles = array();
      for (; $i<$j; ++$i) {
        $snippet = $array[$i];
        if ($snippet == '</DL>') break;
        else if ($snippet == '<DL>') {
          // Imbrication Récursive
          // forme [Titre Dossier] = array()
          $titles[$title] = dl_bookmarks($array, false, $title);
        }
        else {
          if (preg_match($regex_dir, $snippet, $match)) {
            // Récupérer Titre du Dossier
            // sous forme [Titre Dossier] = array() via récursivité
            $title = $match[1];
          }
          if (preg_match_all($regex_ref, $snippet, $match)) {
            // Récupérer Titre et HREF du Site sous forme [Titre Site] = HREF
            foreach ($match[0] as $idx => $data) {
              $titles[$match[2][$idx]] = $match[1][$idx];
            }
          }
        }
      }
      return $titles;
    }
     
    function netscape_bookmarks($html)
    {
      $options = PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY;
      $snippets = preg_split('@(</?DL>)@i', $html, -1, $options);
      $bookmarks = dl_bookmarks($snippets); // en récursion
      return $bookmarks[0];
    }
    le fichier html qui a été analyser en question est :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <!DOCTYPE NETSCAPE-Bookmark-file-1>
    <!-- This is an automatically generated file.
         It will be read and overwritten.
         DO NOT EDIT! -->
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
    <TITLE>Bookmarks</TITLE>
    <H1>Menu des marque-pages</H1>
     
    <DL><p>
        <DT><H3 ADD_DATE="1231959008" LAST_MODIFIED="1231959103">dossier1</H3>
        <DL><p>
            <DT><H3 ADD_DATE="1231959083">sous dossier 1</H3>
            <DL><p>
            </DL><p>
            <DT><H3 ADD_DATE="1231959095" LAST_MODIFIED="1231959101">sous dossier 2</H3>
            <DL><p>
                <DT><A HREF="http://www.fcdv.de/" ADD_DATE="1231959050" LAST_MODIFIED="1231959050" ICON_URI="http://www.fcdv.de/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABCElEQVQ4jaVTwY2DQAzcDightgWzT0qghJRACSlhS0gJlJASKCEVoPyQwJYogXtEwG4ECqeMtB/LHmbGxrkIKsXdGJOybzuRbKkb+auyb03QxPUEA6M08fP20KwEUX2k4vYTgRLCLsFqYadxpOJmjEkFj0MLCzqRTAnBGNNIqHvmy4mBvIoblfIqscP+NTDKTRFqJYSBUTplPDfZebVKTvLws7Jvl+GNGNNuQCZoPglM/PxWh5DU9hTEYSZfc871zBdjTOumlgxij2nTifXtoWe+KCEoIRj566mhgVEenaxKcVf27UioDwlS2dslfm7l8DZ+JhgJ9ftvxDMOtRPJVPAw9q9/h/kNf57CBPze2nZ1AAAAAElFTkSuQmCC" LAST_CHARSET="ISO-8859-1">Dachverein BSV Kickers Emden</A>
    <DD>
            </DL><p>
            <DT><A HREF="http://www.lemonde.fr/" ADD_DATE="1231958931" LAST_MODIFIED="1231958931" ICON_URI="http://medias.lemonde.fr/medias/info/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVQ4jcWSSwrDMAxEZ6Oz6DAGXSIBQbIRuUG6arv1OUyOON3EpumHNqW02giZ8UODBvhW5Zz5zvtDXURQVSkiBEAANDOaGQEwpUQAWDtVlQBwOp7ZqBET5/lQxUwpsZSlzV3XEQDcnSJCVWUpy/027r75MI4jATAimlhVOc+Hh5ZfAtbOtv5eQN/3PwKswv2AYRgIgPXeHwGuz/M2oJSFERPdfT+gps7MKCIUEUZMGwvVUrXYgnSbppzzZoPbuZTleYj+UhfETe4XOKbT6wAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1">Le Monde.fr : Actualités à la Une</A>
    <DD>Le Monde.fr - 1er site d'information. Les articles du journal et toute l'actualité en continu : International, France, Société, Economie, Culture, Environnement, Blogs...
        </DL><p>
        <DT><H3 ADD_DATE="1231959017" LAST_MODIFIED="1231959031">dossier2</H3>
        <DL><p>
        </DL><p>
        <DT><A HREF="http://www.google.fr/firefox?client=firefox-a&rls=org.mozilla:fr:official" ADD_DATE="1231958903" LAST_MODIFIED="1231958903" ICON_URI="http://www.google.fr/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADRUlEQVQ4jSXT60/VdQDH8c/vd7AlI4EHtjW0WCs1i7U2i8u54GWxYDVtpkabumX5JLs86oLYEgRDQjAIBbsYayTmCjDQMwsrtcgxUBdWkNyyJDkCB9jRw+/8vu8e8OD9D7y2tyTJiUFX/wipWxuJe/pzSo9fwiVGNDzB2ewsei0xa9u4Eq5sIpYYl5AkxRwwwLriU2hTEHtbFwte/I6//p0CEyPyWy/XE+JxJYzlwbVExBIhxTFkCwE4jsMDO9rRtk60vQfl/0jxN5fBgInBUE4OUVnEPCJqWUzKw5glBiVkXCAG3sIO7M0/Y2/vxH7hHJv2dwMOAFfXr2NGcWAJVx6mLfGPRJ/tQeACLkVNl9H6IHEvXcB+/nvyqzpxMXAbfnloGT/dcwctS5JpT02mK2kew7botYT6h29igNFwhGU72tBzp1mwOUiw5xoGqGs5zOI3UtFH6Xhq/ajay/yyJ8h6OY19DyeipVs+43jHFXANE1NRjpwZoG/kJi6GklN1qOgRPPVePIeyUG06qs3EOpCFqrOx9q5GCzceJWntx6x+vZE9DR1zajic6fsV+6370OHHUV06qk/HqvFh1fhQZQZWuR9rbwAtzW9g0YYvuDPvU5KfOsTgaBhjDMOhayypfxbVpGEfzMQ+6EU1GdgferEq/djlflSWge7P3U/Glk/Y+G4rr1X9QE/fOC4Gg8vY1Bg5R1/BqkhDtT5U7Z2r0o/2+dEeP2o8fZGxcRcDzE72Mnq1mYGeWm5N3wBgNuaQ2/gqVsVyVJ2BqrzY5ZnofR8q8SFcmP7vIt3NGQw2x/N3mxj52uZK03LCoT/BxPh9dIi7SrNRVSaeD3zYZX5UEkC7A+i2M0NXYzoT3wpz3sY5G0+kYz43jon+5jyMMZgYPHhgAypbgSq8qNTPvN1rsHYF0FRogD8aUrgVTCIcTGCqLZHJ1kRmTqRw/atHITpNxDEsLslDpZnYJatQqQ/7vZVopx85McPgya2EvkxgsuVuwq0LmTmRQvjYvYyfK8QATRdO4nnzMaxiL56ibLQrgAoC6J01c0c6MyHGzhcy0b6WcMuTTLQ/Q6S7mqgT4dLwAIvezkUFK7ALs1HhSrTThwpWIUn/A1g/hnpCRmiJAAAAAElFTkSuQmCC" LAST_CHARSET="UTF-8">Page de démarrage Mozilla Firefox</A>
    <DD>
        <DT><H3 ADD_DATE="1227553446" LAST_MODIFIED="1231958979" PERSONAL_TOOLBAR_FOLDER="true">Barre personnelle</H3>
    <DD>Ajoutez des marques-pages dans ce dossier pour les voir apparaître sur votre barre personnelle
        <DL><p>
            <DT><A HREF="place:sort=8&maxResults=10">Les plus visités</A>
            <DT><A HREF="http://fr.www.mozilla.com/fr/firefox/central/" ADD_DATE="1227553446" LAST_MODIFIED="1227553446" ICON_URI="http://fr.www.mozilla.com/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABEUlEQVQ4jbWSsXEDMQwEL0CIWAWwBdTCFtgCU0Xs4bMPVAgL+GZUwTrg/5uS7JECGwlnOLzF4UDpr6u1RkqJkIgIWmv03nkrvN/vRAQhsUks+1mkAZN+B63rDTOj7MIicZUgxlkkUkq4+88AMzsB7J23GLCrxKYg50xKiUXiRdxaw8xYdgD67nyAmOBlHgfA3cfsMR7NggN2ZHLcLftYp4Pn7jMgJNydnPOjkwgEnGtbJsH1CXhsotZKiTjDlpnRe8fdT9E2Cee7I5daKwpRShkOzAx3f5l9k7hcLoREzplaK4uCCLGuNx620Ht/sb5Ntt/+xFor8Zx87El/Ur13Yg9n7p5z/gwwg47w3H0E9Z/1BfAkJDRE3FKkAAAAAElFTkSuQmCC">Débuter avec Firefox</A>
            <DT><A FEEDURL="http://fr.fxfeeds.mozilla.com/fr/firefox/headlines.xml" HREF="http://www.lemonde.fr/">À la une</A>
        </DL><p>
    </DL><p>
    Voila le but serai de parcourir le tableau puis dans extraire à chaque fois les noms des dossiers,sous dossier et favoris pour les insérer dans une base SQL suivent l'algorithme expliquer dans le premier post

    voila si tu veux faire le test
    http://www.tp74.net/ajax_test/ajoutexterne/ajout.php

    Tu peut aussi faire toit même le test en analysant tès favoris.
    Ces scripts son destiné à importer les favoris dans le projet de classement de favoris en lignes vous pouvez le tester en vous inscrivant http://www.tp74.net
    merci de ton aide

  8. #8
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Je viens de relire la fonction récursive lecturebootmark. Du coup elle fait parfaitement sont travail. Ton arborescence est parfaite elle est du type

    -sous dossier
    -$CleSousDossier
    -$ValeurSousDossier

    Peux tu me dire l'arborescence finale que tu recherches

  9. #9
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Points : 66
    Points
    66
    Par défaut
    le problème ne viens pas de l'arborescence j'ai déjà celle que j'attende .
    Mais le problème est d'insérer les donnée du tableau dans la base de donner.
    Donc je pense qui faut la parcourir et prendre les donnés une par une pour les insérer une par une dans la base mysql
    voici les bases correspondent :
    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
     
    CREATE TABLE IF NOT EXISTS `dossier` (
      `idD` bigint(20) NOT NULL auto_increment,
      `lvlD` tinyint(4) NOT NULL,
      `nomD` tinytext NOT NULL,
      `nD` tinyint(4) NOT NULL,
      `idDP` bigint(20) NOT NULL,
      `idU` bigint(20) NOT NULL,
      PRIMARY KEY  (`idD`),
      KEY `nomD` (`nomD`(20))
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=40 ;
     
     
    CREATE TABLE IF NOT EXISTS `favori` (
      `idF` bigint(20) NOT NULL auto_increment,
      `nomF` tinytext NOT NULL,
      `priF` tinyint(4) NOT NULL,
      `urlF` text NOT NULL,
      `icoF` text NOT NULL,
      `comF` text NOT NULL,
      `idDP` bigint(20) NOT NULL,
      `idU` bigint(20) NOT NULL,
      PRIMARY KEY  (`idF`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=86 ;
    Si tu veux test le principe sur le site

  10. #10
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //function lecturebootmark($bookmarks)
     
    foreach{
     
       ....
       $Sql="UPDATE or INSERT ...";
       $ResultFacture = mysql_query ($SqlFacture) or die (mysql_error ());
     
    }

  11. #11
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Points : 66
    Points
    66
    Par défaut
    Celement si c'était si simple lol

    le seul problème c'est que comme tu voix je n'arrive pas à avoir le nom des dossiers avec key () ou ne Nom des favoris vue que si je met pas key() sa met le type de variable array()

  12. #12
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Essaye d'ajouter dans ta fct recursive :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    if (is_array($boot1) == true)
    			{	
                                    echo 'D = >'.key($boot1).'<br />';
     
                                    //
                                    if(empty($boot1)) //empty a verifier pour un tableau
    				     lecturebootmark($boot1);
    			}

  13. #13
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Points : 66
    Points
    66
    Par défaut
    j'ai tenter sa sa se raproche :
    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
    function lecturebootmark($bookmarks)
    {
    	if (is_array($bookmarks) == true)
    	{
    		foreach ($bookmarks as $key=>$value)
    		{
    			echo '<'.count($value).'>';
    			if (is_array($key) == true)
    			{	
    				echo 'D1 = >'.key($key).' = ';
    				echo 'D2 = >'.key($value).'<br />';
    				lecturebootmark($key);
    			}
    			elseif (is_array($key) == false)
    			{
    				echo 'F1 = >'.$key.'=';
    				echo 'F2 = >'.$value.'<br />';
    			}
    			else 
    			{
    				echo 'BUG!!! <br />';
    			}
    		}
    	}
    }
    sa donne ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <3>F1 = >dossier1=F2 = >Array
    <0>F1 = >dossier2=F2 = >Array
    <1>F1 = >Page de démarrage Mozilla Firefox=F2 = >http://www.google.fr/firefox?client=firefox-a&rls=org.mozilla:fr:official
    <1>F1 = >Barre personnelle=F2 = >Array

  14. #14
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Points : 66
    Points
    66
    Par défaut
    Voila la se se raproche vraiment ;

    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
    function lecturebootmark($bookmarks)
    {
    	if (is_array($bookmarks) == true)
    	{
    		foreach ($bookmarks as $key=>$value)
    		{
    			echo '{ value '.count($value).' }';
    			echo '{ key '.count($key).' }';
    			if (is_array($key) == true)
    			{	
    				echo '[D1 = '.key($key).' = ';
    				echo 'D2 = '.key($value).']<br />';
    			}
    			else
    			{
    				echo '[F1 = '.$key.'=';
    				echo 'F2 = '.$value.']<br />';
    				lecturebootmark($value);
    			}
    		}
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    { value 3 }{ key 1 }[F1 = dossier1=F2 = Array]
    { value 0 }{ key 1 }[F1 = sous dossier 1=F2 = Array]
    { value 1 }{ key 1 }[F1 = sous dossier 2=F2 = Array]
    { value 1 }{ key 1 }[F1 = Dachverein BSV Kickers Emden=F2 = http://www.fcdv.de/]
    { value 1 }{ key 1 }[F1 = Le Monde.fr : Actualités à la Une=F2 = http://www.lemonde.fr/]
    { value 0 }{ key 1 }[F1 = dossier2=F2 = Array]
    { value 1 }{ key 1 }[F1 = Page de démarrage Mozilla Firefox=F2 = http://www.google.fr/firefox?client=firefox-a&rls=org.mozilla:fr:official]
    { value 1 }{ key 1 }[F1 = Barre personnelle=F2 = Array]
    { value 1 }{ key 1 }[F1 = Débuter avec Firefox=F2 = http://fr.www.mozilla.com/fr/firefox/central/]

  15. #15
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Gardons les mise en forme D pour directory et F pour file je pense???
    En plus le premier if ne sert a rien... On s'eloigne

    Du coup la on transforme un peu :
    Essaye vraiement avec juste la condition en plus que je t'ai donne juste avant.
    Elle precise que dans le cas ou le tableau est vide alors on passe au prochain sous dossier...
    Je penses que c'est ce que tu veux

  16. #16
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Points : 66
    Points
    66
    Par défaut
    merci de tés conseilles voila le travaille pas encore tout à fait au point
    mis en place graphique de l'arborescence.
    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
    28
    $lvl = null;
    function lecturebootmark($bookmarks,$lvl)
    {
    	if (is_array($bookmarks) == true)
    	{
    		foreach ($bookmarks as $key=>$value)
    		{
    			$lvl = $lvl + 1;
    			echo '{ value '.count($value).' }';
    			echo '{ key '.count($key).' }';
    			for ($tiret=0; $tiret<$lvl ; $tiret++)
    			{echo '-';}
    			if (is_array($key) == false)
    			{
    				echo '[F1 = '.$key;
    				if (is_array($value) == true)
    				{echo '<br />';}
     
    				if (is_array($value) == false)
    				{echo 'F2 = '.$value.']<br />';
    				$lvl = $lvl - 1;
    				}
     
    				lecturebootmark($value,$lvl);
    			}
    		}
    	}
    }
    voila ce que sa donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    { value 3 }{ key 1 }-[F1 = dossier1
    { value 0 }{ key 1 }--[F1 = sous dossier 1
    { value 1 }{ key 1 }---[F1 = sous dossier 2
    { value 1 }{ key 1 }----[F1 = Dachverein BSV Kickers EmdenF2 = http://www.fcdv.de/]
    { value 1 }{ key 1 }----[F1 = Le Monde.fr : Actualités à la UneF2 = http://www.lemonde.fr/]
    { value 0 }{ key 1 }--[F1 = dossier2
    { value 1 }{ key 1 }---[F1 = Page de démarrage Mozilla FirefoxF2 = http://www.google.fr/firefox?client=firefox-a&rls=org.mozilla:fr:official]
    { value 1 }{ key 1 }---[F1 = Barre personnelle
    { value 1 }{ key 1 }----[F1 = Débuter avec FirefoxF2 = http://fr.www.mozilla.com/fr/firefox/central/]
    on y est preske

  17. #17
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Points : 66
    Points
    66
    Par défaut
    voila fini
    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
    $lvl = null;
    function lecturebootmark($bookmarks,$lvl)
    {
    	if (is_array($bookmarks) == true)
    	{
    		$lvl = $lvl + 1;
    		foreach ($bookmarks as $key=>$value)
    		{
    			echo '{ value '.count($value).' }';
    			echo '{ key '.count($key).' }';
    			for ($tiret=0; $tiret<$lvl ; $tiret++)
    			{echo '-';}
    			if (is_array($key) == false)
    			{
    				echo '[F1 = '.$key;
    				if (is_array($value) == true)
    				{echo '<br />';}
     
    				if (is_array($value) == false)
    				{echo 'F2 = '.$value.']<br />';
    				}
    				lecturebootmark($value,$lvl);
    			}
    		}
    	}
    }
    lecturebootmark($bookmarks,$lvl);
    teste ici

    merci infiniment guigo pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [langage] Parcourir un tableau
    Par Jibees dans le forum Langage
    Réponses: 13
    Dernier message: 22/04/2003, 14h18
  2. [langage] TRI TABLEAU ASSOCIATIF
    Par proner dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2003, 16h38
  3. [langage] Réinitialiser un tableau associatif.
    Par totox17 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2003, 16h29
  4. Comment cree une boite de dialogue parcourir
    Par kenshi dans le forum MFC
    Réponses: 5
    Dernier message: 06/01/2003, 10h30
  5. [VB6] [MDI] Parcourir toutes les MDIForms chargées
    Par d.carail dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/10/2002, 09h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo