Utiliser un tableau rempli dans une fonction récursive

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 : Utiliser un tableau rempli dans une fonction récursive

par serein714 » 28 déc. 2006, 12:25

Oupsss, j'avais bien réfléchi mais après avoir posté, j'ai trouvé la réponse (en fait, elle était dans ma question !)...
function liste_albums($dir, &$tabl_liens) {
	...
	liste_albums($chemin_fichier, &$tabl_liens);

}

liste_albums('.', &$tabl_liens);
Désolé pour ce post inutile (pour moi mais peut-être pas pour d'autres... :wink: )

Philippe

Utiliser un tableau rempli dans une fonction récursive

par serein714 » 28 déc. 2006, 12:18

Bonjour,

Ma question certainement est simpliste mais mes recherches ne m'ont apporté aucune réponse :oops:

J'ai une fonction récursive qui parcourt un répertoire et ses sous répertoires : OK
Pour chaque image trouvée, je remplis un tableau : OK
Mais en dehors de cette fonction, et bien, mon tableau est vide...

Je pense qu'il y a une histoire de passage de valeur par référence, mais je ne vois pas comment faire avec mon tableau.

Merci d'avance.
function liste_albums($dir) {
	if ($handle = opendir($dir)) {
		while (($file = readdir($handle)) !== false) {
			$chemin_fichier = $dir.'/'.$file;
			if (is_dir($chemin_fichier)) {
				$nb_image = 0;
				if (!in_array($file, $GLOBALS['tabl_exclus'])) {
					liste_albums($chemin_fichier);
				}
			} else {
				if (is_file($chemin_fichier)) {
					if (in_array(substr($file,-4), $GLOBALS['tabl_inclus'])) {
					  $nb_image++;
						if ($nb_image == 1) {
							$chemin_miniature = $dir.'/mini/'.$file;
							$lien = '<a href="album.php?titre='.$dir.'">';
							$lien .= '<img src="'.$chemin_miniature.'"><h3>'.ucwords(substr($dir,2)).'</h3></a>';
//							echo $lien;
							$tabl_liens[$dir] = $lien;
						}
					}
				}
			}
		}
		closedir($handle);
	}
}

liste_albums('.');
print_r $tabl_liens;