2012-01-09 64 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