Чтобы начать работу с такими проблемами, всегда обращайтесь к руководству по PHP и читайте комментарии, это всегда очень полезно. В нем говорится, что scandir
возвращает массив, поэтому вы можете пройти по нему с foreach
.
Чтобы иметь возможность удалить некоторые записи массива, вот пример с for
:
$exclude = array( ".", "..", ".DS_Store", "Thumbs.db" );
if( ($dir = scandir($path)) !== false ) {
for( $i=0; $i<count($dir); $i++ ) {
if( in_array($dir[$i], $exclude) )
unset( $dir[$i] );
}
}
$retval = array_values( $dir );
Также обратите внимание на SPL-итераторы , предоставляемые PHP, особенно RecursiveDirectoryIterator
и DirectoryIterator
.