<?php


$dir = "./grubhub_analtic/test";
$dfff= scanAllDir($dir);
echo "<pre>";
print_r($dfff);


function scanAllDir($dir) {
  $result = [];
  foreach(scandir($dir) as $filename) {
    if ($filename[0] === '.') continue;
    $filePath = $dir . '/' . $filename;
    if (is_dir($filePath)) {
      foreach (scanAllDir($filePath) as $childFilename) {
		$datKey = $filename . '/' . $childFilename;  
        //$result[$datKey] = $childFilename;
		if (is_dir($datKey)) {
		 foreach (scanAllDir($datKey) as $chil2) {
			 $result[] = $chil2;
		 }
		}
      }
    } else {
      $result[] = $filename;
    }
  }
  return $result;
}


function RAgetFiles($main_dir, $result = array()) {
        $dirs = scandir($main_dir); 
            foreach($dirs as $dir)  {
                if (is_dir("$main_dir/$dir")){
                    if ($dir === '.' || $dir === '..') { 
                        
						//$result[$dir] = $files;
						continue; 
						}
						
                    $files=scandir($main_dir."/".$dir);
					
					$files2=scandir($files);
					$files3=scandir($files2);
                    $result[$dir] = $files3;
					
                }
        }
        return $result;
    }
$rafiles = RAgetFiles('./grubhub_analtic/test/2025');
    echo '<pre>';
    //print_r($rafiles);
    echo '</pre>';

function scanAllDir_bkp($dir) {
  $result = [];
  foreach(scandir($dir) as $filename) {
    if ($filename[0] === '.') continue;
    $filePath = $dir . '/' . $filename;
    if (is_dir($filePath)) {
      foreach (scanAllDir($filePath) as $childFilename) {
        $result[] = $filename . '/' . $childFilename;
      }
    } else {
      $result[] = $filename;
    }
  }
  return $result;
}

function listFolderFiles2($dir){
    $ffs = scandir($dir);

    unset($ffs[array_search('.', $ffs, true)]);
    unset($ffs[array_search('..', $ffs, true)]);
return $res = getData($ffs);
    // prevent empty ordered elements
    if (count($ffs) < 1)
        return;

    echo '<ol>';
    foreach($ffs as $ff){
        echo '<li>'.$ff;
		
        if(is_dir($dir.'/'.$ff)) listFolderFiles2($dir.'/'.$ff);
        echo '</li>';
    }
    echo '</ol>';
}



function getData($arr) 
{
    $res = array();
    $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr));
    foreach($iterator as $key=>$value) {
        $pair = array($key, $value);
        array_push($res, $pair);
    }
    return $res;
}

 // All key-value-pairs are stored in $res
listFolderFiles2($dir);

function listFolderFiles($dir)
{
	
    echo '<ol>';
    foreach (new DirectoryIterator($dir) as $fileInfo) {
		
		//echo "<pre>ddd";print_r($fileInfo);die;
        if (!$fileInfo->isDot()) {
            echo '<li><a href="'.$fileInfo->getPathname().'"'.$fileInfo->getFilename().'">' . $fileInfo->getFilename();echo '</a></li>';
            if ($fileInfo->isDir()) {
                listFolderFiles($fileInfo->getPathname());
            }
            
        }
    }
    echo '</ol>';
}
listFolderFiles($dir);







function recursive_directory($dirname,$maxdepth=5, $depth=0){
 if ($depth >= $maxdepth) {
  return false;
 }
 $subdirectories = array();
 $files = array();
 if (is_dir($dirname) && is_readable($dirname)) {
  $d = dir($dirname);
  while (false !== ($f = $d->read())) {
   $file = $d->path.'/'.$f;
   // skip . and ..
   if (('.'==$f) || ('..'==$f)) {
    continue;
   };
   if (is_dir($dirname.'/'.$f)) {
    array_push($subdirectories,$dirname.'/'.$f);
   } else {
    array_push($files,$dirname.'/'.$f);
   };
  };
  $d->close();
  foreach ($subdirectories as $subdirectory) {
    $files = array_merge($files, recursive_directory($subdirectory, $maxdepth, $depth+1));
  };
 }
 return $files;
}


$fileData = fillArrayWithFileNodes(new DirectoryIterator($dir));
echo "<pre>==rrrrrr";
print_r($fileData); // print the result..
function fillArrayWithFileNodes( DirectoryIterator $dir )
{
  $data = array();
  foreach ( $dir as $node )
  {
    if ( $node->isDir() && !$node->isDot() )
    {
      $data[$node->getFilename()] = fillArrayWithFileNodes( new DirectoryIterator( $node->getPathname() ) );
    }
    else if ( $node->isFile() )
    {
      $data[] = $node->getFilename();
    }
  }
  return $data;
}


//$files = recursive_directory('grubhub_analtic/test/2025');
//print_r($fileData); // print the result...
?>