2012-01-09 57 views
0

我一直在关注readdir(),is_dir()等教程,这些教程是基于FTP上的文件夹和文件设置小型图库。我想知道$ directorys [] = $文件;部分具体是吗?

while($file= readdir($dir_handle))  
{ 
     if(is_dir($file)){    
      $directorys[] = $file;   
     }else{        
      $files[] = $file;    
     } 
} 

回答

1

它将一个项目推送到数组而不是array_push,它只会将一个项目推送到数组。

使用array_push$array[] = $item的工作原理相同,但使用array_push并不理想,因为它适合于推送阵列中的多个项目。

实施例:

Array (
) 

这样$array[] = 'This works!';array_push($array, 'This works!')后它会出现这样的:

Array (
    [0] => This works! 
) 

您也可以推阵列到一个数组,像这样:

$array[] = array('item', 'item2'); 

Array (
    [0] => Array (
      [0] => item 
      [1] => item2 
     ) 
) 
+0

感谢这有助于为对方回复了很多,谢谢。 – crm 2012-01-09 20:34:58

1

它添加了目录到directory阵列:)

if(is_dir($file)){    
     $directorys[] = $file; // current item is a directory so add it to the list of directories  
    }else{        
     $files[] = $file; // current item is a file so add it to the list of files 
    } 

但是如果你使用PHP 5我真的建议使用DirectoryIterator

顺便说一句,$file真的很糟糕,因为它并不总是一个文件。

0

它在数组的末尾创建一个新的数组元素并为其分配一个值。

2

$文件将包含已扫描项目的名称。在这种情况下,使用is_dir($ file)可以检查当前目录中的$文件是否是目录。

然后,使用标准阵列追加操作符[]中,$文件名或目录名添加到$文件/ $ directorys阵列...

3

$directory是一个数组。

代码

$directory[] = $file

增加$file$directory数组的末尾。这与

array_push($directory, $file)相同。在array_push

更多信息以phpdocs

+1

因此,您的代码读取文件/文件夹列表,并将它们分为两个数组:$ directorys和$ files – MrGlass 2012-01-09 20:26:22