Zoltán Németh wrote: > 2007. 04. 16, hétfő keltezéssel 10.50-kor Zoltán Németh ezt írta: >> 2007. 04. 16, hétfő keltezéssel 10.40-kor Otto Wyss ezt írta: >>> Zoltán Németh wrote: >>>> what do you mean by doesn't work? what error is thrown if any? what >>>> result do you get instead of the expected? >>>> at first glance I cannot see anything wrong with your function... >>>> >>> It simply doesn't add any sub folder to $dirs. Could it be that the >>> function doesn't return the $dirs parameter? >> yes at second look I see the problem. you should do it this way: >> >> function recurseDir ($base, $accending = true, $dirs = array()) { >> $handle = opendir ($base); >> while ($dir = readdir($handle)) { >> if (($dir != '..') and ($dir != '.')) { >> $d = $base.'/'.$dir; >> if (is_dir ($d)) { >> $dirs[$d] = filemtime($d); >> $dirs = recurseDir ($d, true, $dirs); >> } >> } >> } >> closedir ($handle); >> asort ($dirs); >> return $accending? $dirs: array_reverse ($dirs); >> } >> >> and then you can call array_keys on the result of the whole recursion >> like: >> $dirnames = array_keys($base, $accending); > > ehh typo in the above line, sorry > > $dirnames = array_keys(recurseDir($base, $accending));
It would be much cleaner to not pass $dirs into the function and use array_merge() on the returned array instead, additionally having to call array_keys() on the call to recurseDir() seems rather lame (too much of wtf factor imho). function recurseDir ($base, $ascending = true, $self_called = false) { $handle = opendir($base); $dirs = array(); while ($dir = readdir($handle)) { if (($dir != "..") and ($dir != ".")) { $d = $base."/".$dir; if (is_dir ($d)) { $dirs[$d] = filemtime($d); $dirs = array_merge($dirs, recurseDir($d, $ascending, true)); } } } closedir ($handle); if ($self_called) { return $dirs; } else { asort ($dirs); return array_keys($ascending ? $dirs : array_reverse($dirs)); } } not exactly pretty, what with the use of $self_called - but at least it keeps all the crap inside the function. > > greets > Zoltán Németh > >> greets >> Zoltán Németh >> >>> O. Wyss >>> > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php