Поздрави на всички !
Имам следната функция за рекурсивно обхождане на директории:
function recursive_listdir($base) {
static $filelist = array();
static $dirlist = array();
if(is_dir($base)) {
$dh = opendir($base);
while (false !== ($dir = readdir($dh))) {
if (is_dir($base ."/". $dir) && $dir !== '.' && $dir !== '..') {
$subbase = $base ."/". $dir;
$dirlist[] = $subbase;
$subdirlist = recursive_listdir($subbase);
} elseif(is_file($base ."/". $dir) && $dir !== '.' && $dir !== '..') {
$filelist[] = $base ."/". $dir;
}
}
closedir($dh);
}
$array['dirs'] = $dirlist;
$array['files'] = $filelist;
return $array;
}
Един primeren print_r() от резултата на функцията би изглеждал така:
Array
(
[dirs] => Array
(
[0] => files/deep
[1] => files/deep/deeper
)
[files] => Array
(
[0] => files/deep/deeper/table33.xml
[1] => files/deep/deeper/table44.xml
[2] => files/deep/table22.xml
[3] => files/deep/testpage.xml
[4] => files/deep/testpage2.php
[5] => files/noname1.html
[6] => files/noname1.php
[7] => files/table1.xml
)
)
Проблемът ми е следния : как може да се модифицира фукнцията така, че да свръща асоциативен масив, в който един елемент е директория, а асоцийраните с него ключовете са файловете с разширение .xml, които се намират в съответната директория, т.е. нещо такова:
dir['files'][1] = 'table1.xml';
dir['deep'][1] = 'table22.xml';
dir['deep'][2] = 'testpage.xml';
dir['deeper'][1] = 'table33.xml';
dir['deeper'][2] = 'table44.xml';