Page 1 sur 1

Tableau associatif

Posté : 29 nov. 2005, 17:30
par Moker
Bonjour,

je voudrait recuperer des noms de dossiers dans un tableau associatif.
malheureusement mon script ne recupere que le dernier dossier trouvé :(

ce script le voici :
$curdir = "./gallerie";

$dir = opendir($curdir);
$id = 0;

while($p = readdir($dir))
	{
	if(is_dir($curdir."/".$p) && ($p != ".") && ($p != ".."))
		{
		$id++;
		$rep = array($id => $p);
		}
	}
closedir($dir);
foreach($rep as $id=>$valeur) 
    { 
    echo $id.' : '.$valeur.'<br>'; 
    }
normalement php devrait me retourner :

1:dossier n°1
2:dossier n°2
.....
5:dossier n°5

mais il me retourne seulement :

5:dossier n°5

pourriez vous me dire ou est mon erreur?

merci beaucoup

Posté : 29 nov. 2005, 17:34
par zeus
c'est normal, à chaque dossier, tu écrase le contenu de ton tableau rep pour le remplacer par le nouveau contenu

Si tu veux ajouter une case de clé $id et de valeur $p dans ton tableau, il faut faire
$rep[$id] = $p
De plus, je me suis permis de revoir ton identation qui était, excuse moi, un peu merdique
$curdir = "./gallerie";

$dir = opendir($curdir);
$id = 0;

while($p = readdir($dir)) {
	if(is_dir($curdir."/".$p) && ($p != ".") && ($p != "..")) {
		$id++;
		$rep[$id] = $p;
	}
}
closedir($dir);

Posté : 29 nov. 2005, 18:49
par Cyrano
Hannnnn!, il dit des choses zeus :langue:

Bon allez, je me sens bon, on va même simplifier:
$curdir = "./gallerie";

$dir = opendir($curdir);
/* On déclare la variable $rep en tableau */
$rep = array();
while($p = readdir($dir))
{
    if(is_dir($curdir."/".$p) && ($p != ".") && ($p != ".."))
    {
        /* On ajoute le nom du répertoire à la suite des autres, l'incrémentation de l'index est automatique */
        $rep[] = $p;
    }
}
closedir($dir);
MAIS ! Ça, c'est pas un tableau associatif mais un tableau indexé ; si tu veux un tableau associatif, il faut des index nommés. Tu pourrais bien avoir le nom de chacun de tes dossiers en index de $rep... mais tu mettras quoi comme valeur dedans ?

Posté : 30 nov. 2005, 11:42
par zeus
Hannnnn!, il dit des choses zeus :langue:
Je me suis dit que comme ça, il s'en souviendrait ;)

Posté : 30 nov. 2005, 13:39
par Moker
merci beaucoup à vous deux !! :wink:

je me suis compliqué la vie c'est bien plus simple comme ca j'aurait du trouver tout seul :oops:

merci aussi pour les explications, je connais maintenant la difference entre un tableau indexé et un tableau associatif :)