Lister les dossiers sans les doublons

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Lister les dossiers sans les doublons

Re: Lister les dossiers sans les doublons

par rimie » 18 juil. 2013, 03:28

les donnees sont repetitives plus qu'une fois

Re: Lister les dossiers sans les doublons

par Spols » 17 juil. 2013, 10:58

un message d'erreur ou une description du comportement non souhaité nous aiderait à avancer

Re: Lister les dossiers sans les doublons

par rimie » 17 juil. 2013, 10:15

merci je vais tester ca.

EDIT: ca marche toujours pas :(

Re: Lister les dossiers sans les doublons

par Spols » 15 juil. 2013, 11:05

Ah ouais j'avais pas vu cela

inArray est déclaré en tableau, il faut donc le remplir comme telle
if ($handle = opendir('../../Alfirdaous')) {
    if ($handle = opendir('.')) {
        $inArray = array();
    while (false !== ($entry = readdir($handle))) {
        if (($entry != ".") && ($entry != "..")) {
            if(!in_array($entry, $inArray)){
                $inArray[] = $entry;
            } else {
                echo $entry.' exists <br />';
            }
        }
        var_dump($inArray);

        } // end while
    
    
    closedir($handle);
} // end if
} // end if

Re: Lister les dossiers sans les doublons

par moogli » 15 juil. 2013, 10:57

Hum $inarray n'est pas un tableau, entry non plus d'ailleurs manque quelque chose la ;)



@+

Re: Lister les dossiers sans les doublons

par Spols » 15 juil. 2013, 09:40

C'est normal, tu vérifie si $entry est dans ton array mais après tu mets $entry.'<br />' dans ton array donc tu n'aura jamais le cas d'un doublon.
il faut gérer tes <br /> lors de l'affichage
if ($handle = opendir('../../Alfirdaous')) {
    if ($handle = opendir('.')) {
        $inArray = array();
    while (false !== ($entry = readdir($handle))) {
        if (($entry != ".") && ($entry != "..")) {
            if(!in_array($entry, $inArray)){
                $inArray = $entry;
            } else {
                echo $entry.' exists <br />';
            }
        }
        var_dump($inArray);

        } // end while
    
    
    closedir($handle);
} // end if
} // end if

Re: Lister les dossiers sans les doublons

par rimie » 13 juil. 2013, 01:50

j'avais un resultat qui se repetait plusieurs fois

Re: Lister les dossiers sans les doublons

par rimie » 12 juil. 2013, 16:54

ce n'est pas ce que je souhaitais:
if ($handle = opendir('../../Alfirdaous')) {
    if ($handle = opendir('.')) {
        $inArray = array();
    while (false !== ($entry = readdir($handle))) {
        if (($entry != ".") && ($entry != "..")) {
            if(!in_array($entry, $inArray)){
                $inArray = $entry.'<br />';
            } else {
                echo $entry.' exists <br />';
            }
        }
        var_dump($inArray);

        } // end while
    
    
    closedir($handle);
} // end if
} // end if

Re: Lister les dossiers sans les doublons

par Spols » 12 juil. 2013, 15:52

ceci ($entry != $entry) retournera toujours false
Tu dois enregistrer tes dossiers dans un tableau, et tester à chaque fois si le répertoire courant est déjà connu. Si il ne peut y avoir que des doublons et pas de triple, lors de la rencontre d'un doublon, il suffit de le retirer du tableau, sinon tu dois indiquer dans ton tableau qu'il est double et ensuite soit ne pas en tenir compte à l'affichage soit le retirer par une boucle

Lister les dossiers sans les doublons

par rimie » 12 juil. 2013, 12:08

Bonjour,

J'ai un repertoire contenant des sous-repertoires, je veux lister les sous repertoires sans mentionner les doublons:

Code : Tout sélectionner

+ Root ++ Folder1 +++sFolder11 +++sFolder12 +++sFolder13 ++ Folder2 +++sFolder11 +++sFolder21 +++sFolder22
Ici j'ai sFolder11 se triuvant sur Folder1 et Folder2, je veux pas le lister:
<?php
if ($handle = opendir('Root')) {
    if ($handle = opendir('.')) {
    while (false !== ($entry = readdir($handle))) {
        if (($entry != ".") && ($entry != "..") && ($entry != $entry)) {
            echo $entry.'<br />';
        }
    }
    closedir($handle);
}
}
?>
ca me retourne tien

Merci a vous