Avatar billede x4all_dk Nybegynder
14. februar 2006 - 19:47 Der er 6 kommentarer og
1 løsning

rekursive funktion

Jeg har lidt problemer med at få en rekursiv funktion til at virke, så jeg håber nogen kan hjælpe...

Funktionen skal returnere resultatet i et array,
og det kunne jeg ikke få til at virke rekursivt!

Nogen som kan lave det ?
Avatar billede Slettet bruger
14. februar 2006 - 19:48 #1
Øh, udfra hvilke data? :)
Avatar billede x4all_dk Nybegynder
14. februar 2006 - 20:17 #2
Det er en funktion som rekursivt gennemløber et directory,
og skal returnere alle filnavne som matcher f.eks. "*.txt"
i et array.
Avatar billede whatever Nybegynder
14. februar 2006 - 20:38 #3
Skal den også søge igennem evt. underbiblioteker?

Hvis ikke, hvorfor så lave en rekursiv funktion?
Avatar billede morw Nybegynder
14. februar 2006 - 22:41 #4
function whatever($sti)
{

global $filer;

$dh = opendir($sti);

// løb nuværende mappe igennem
while (($denne = readdir($dh)) !== false)
{
  if(is_dir($denne))
    whatever($denne);
  else
  {
    if(substr($denne, -4) == '.txt')
      $filer[] = $sti . $denne;
  }

}

}
Avatar billede morw Nybegynder
14. februar 2006 - 22:44 #5
Måske lige dette skal ind:

if ($denne != '.' && $denne != '..' )
{

-------------

function whatever($sti)
{

global $filer;

$dh = opendir($sti);

// løb nuværende mappe igennem
while (($denne = readdir($dh)) !== false)
{
if ($denne != '.' && $denne != '..' )
{

  if(is_dir($denne))
    whatever($denne);
  else
  {
    if(substr($denne, -4) == '.txt')
      $filer[] = $sti . $denne;
  }
}

}

}
Avatar billede x4all_dk Nybegynder
14. februar 2006 - 23:46 #6
Morw: Jeps det virker med en global var, men jeg havde håbet at kunne undgå en
global var. Kan det ikke laves uden ?
Avatar billede Slettet bruger
14. februar 2006 - 23:50 #7
Brug eventuelt: function whatever($sti, &$filer) { ... }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester