目录文件夹/文件列表到数组php

目录文件夹/文件列表到数组php,php,arrays,recursion,multidimensional-array,iteration,Php,Arrays,Recursion,Multidimensional Array,Iteration,我有一个小函数,它将目录文件夹/文件列表作为多维数组提供给我 我怎样才能拥有具有以下结构的目录列表。(方案编号:3) 我的当前文件夹列表为数组 $files = array ( 0 => 'do-update.php', 1 => 'sitemap.xml', 2 => 'sitemap.xml.gz', 3 => 'wp-config.php', 'wp-content' => array ( 'uploads' =>

我有一个小函数,它将目录文件夹/文件列表作为多维数组提供给我

我怎样才能拥有具有以下结构的目录列表。(方案编号:3)

我的当前文件夹列表为数组

$files = array (
  0 => 'do-update.php',
  1 => 'sitemap.xml',
  2 => 'sitemap.xml.gz',
  3 => 'wp-config.php',
  'wp-content' => 
  array (
    'uploads' => 
    array (
      2013 => 
      array (
        '05' => 
        array (
          0 => 'kabeduvarkad-1024x768.jpg',
          1 => 'kabeduvarkad-150x150.jpg',
          2 => 'kabeduvarkad-300x225.jpg',
          3 => 'kabeduvarkad-940x198.jpg',
        ),
        10 => 
        array (
        ),
      ),
      2014 => 
      array (
        '02' => 
        array (
        ),
      ),
      2015 => 'de.php',
    ),
  ),
  'wp-update' => 
  array (
    0 => 'wp-update.tar',
    1 => 'wp-update.tar.gz',
    2 => 'wp-update1.tar',
    3 => 'wp-update1.tar.gz',
  ),
  4 => 'wp-update.tar.gz',
);
$expected = array (
  0 => 'do-update.php',
  1 => 'sitemap.xml',
  2 => 'sitemap.xml.gz',
  3 => 'test.php',
  4 => 'wp-config.php',
  5 => 'wp-content/',
  6 => 'wp-content/uploads/',
  7 => 'wp-content/uploads/2013/',
  8 => 'wp-content/uploads/2013/05/',
  9 => 'wp-content/uploads/2013/05/kabeduvarkad-1024x768.jpg',
  10 => 'wp-content/uploads/2013/05/kabeduvarkad-150x150.jpg',
  11 => 'wp-content/uploads/2013/05/kabeduvarkad-300x225.jpg',
  12 => 'wp-content/uploads/2013/05/kabeduvarkad-940x198.jpg',
  13 => 'wp-content/uploads/2013/05/kabeduvarkad.jpg',
  14 => '...'
);
预期文件夹列表为数组

$files = array (
  0 => 'do-update.php',
  1 => 'sitemap.xml',
  2 => 'sitemap.xml.gz',
  3 => 'wp-config.php',
  'wp-content' => 
  array (
    'uploads' => 
    array (
      2013 => 
      array (
        '05' => 
        array (
          0 => 'kabeduvarkad-1024x768.jpg',
          1 => 'kabeduvarkad-150x150.jpg',
          2 => 'kabeduvarkad-300x225.jpg',
          3 => 'kabeduvarkad-940x198.jpg',
        ),
        10 => 
        array (
        ),
      ),
      2014 => 
      array (
        '02' => 
        array (
        ),
      ),
      2015 => 'de.php',
    ),
  ),
  'wp-update' => 
  array (
    0 => 'wp-update.tar',
    1 => 'wp-update.tar.gz',
    2 => 'wp-update1.tar',
    3 => 'wp-update1.tar.gz',
  ),
  4 => 'wp-update.tar.gz',
);
$expected = array (
  0 => 'do-update.php',
  1 => 'sitemap.xml',
  2 => 'sitemap.xml.gz',
  3 => 'test.php',
  4 => 'wp-config.php',
  5 => 'wp-content/',
  6 => 'wp-content/uploads/',
  7 => 'wp-content/uploads/2013/',
  8 => 'wp-content/uploads/2013/05/',
  9 => 'wp-content/uploads/2013/05/kabeduvarkad-1024x768.jpg',
  10 => 'wp-content/uploads/2013/05/kabeduvarkad-150x150.jpg',
  11 => 'wp-content/uploads/2013/05/kabeduvarkad-300x225.jpg',
  12 => 'wp-content/uploads/2013/05/kabeduvarkad-940x198.jpg',
  13 => 'wp-content/uploads/2013/05/kabeduvarkad.jpg',
  14 => '...'
);
这是您要找的内容

试试看

  function dirToArray($dir){ 
  $contents = array(); 
  foreach (scandir($dir) as $node) 
  { 
     if($node == '.' || $node == '..' ) continue;                     
     if(is_dir($dir . '/' . $node )) { $contents[]=$dir . '/' . $node;
     $contents[]=dirToArray($dir.'/' . $node); 
     } 
     else
     { 
     $contents[] = $dir.'/' .$node; 
     }
   } 
   return $contents; 
 }

     $dir='abcd'; $result=dirToArray($dir); 
     $it= new RecursiveIteratorIterator (new RecursiveArrayIterator($result));                                 $l=iterator_to_array($it,false); 
     echo '<pre>'; 
     print_r($l); 
     echo '</pre>';
函数dirToArray($dir){
$contents=array();
foreach(scandir($dir)作为$node)
{ 
如果($node='.| |$node=''.')继续;
如果(is_dir($dir.'/'.$node)){$contents[]=$dir.'/'.$node;
$contents[]=dirToArray($dir.'/'.$node);
} 
其他的
{ 
$contents[]=$dir.'/'.$node;
}
} 
返回$contents;
}
$dir='abcd'$结果=dirToArray($dir);
$it=new RecursiveIteratorIterator(new RecursiveArrayIterator($result))$l=迭代器到数组($it,false);
回声';
印刷费($l);
回声';

似乎是脚本的源代码。我和你的有些不同。我不理解你和这个的关系。对不起。我粘贴了一个链接,我在另一个问题中添加了链接。请尝试使用“查找所有文件”函数。此函数不会返回空文件夹。此脚本不会返回空目录非常感谢您实际返回$contents数组