簡體   English   中英

PHP:如何創建文件數組(也稱為scandir數組)的數組

[英]PHP: how to create an array of an array of files (aka, an array of scandir)

我想遍歷4條路徑,並為每個路徑將特定路徑的文件存儲在數組中。 原因是,我想在數據庫中插入每個文件標題和文​​件路徑。

所以:

$COMICS_path = array('./images/Comics/Charts/', './images/Comics/Life/', './images/Comics/Misc/', './images/Comics/Office/', './images/Comics/Political/');

$COMICS_files = array(scandir('./images/Comics/Charts/'), scandir('./images/Comics/Life/'), scandir('./images/Comics/Misc/'), scandir('./images/Comics/Office/'), scandir('./images/Comics/Political/'));

$COMICS_path似乎輸出正確的數組。

但是,當我期望類似以下內容時,$ COMICS_files僅輸出“ ARRAY”:

$COMICS_files = (file1.png, file2.png, file3.png, ... file n.png)

這可能嗎? 如果沒有,誰能引導我找到遍歷多個文件夾並檢索每個文件的最佳方法?

謝謝!

$COMICS_files = array();
foreach($COMICS_path as $path)
    $COMICS_files = array_merge($COMICS_files, scandir($path));
var_dump($COMICS_files);

由於scandir()返回一個數組,因此您必須將它們合並到一個大數組中。

它輸出一個二維數組,因為scandir返回一個數組。

因此$ COMICS_files [0]將為(afile1.png,afile2.png,...),而$ COMICS_FILES [1]將為(bfile2.png,bfile2.png)

如果要將所有這些文件放在一個數組中,則應執行以下操作

$COMICS_path = array('./images/Comics/Charts/', './images/Comics/Life/', './images/Comics/Misc/', './images/Comics/Office/', './images/Comics/Political/');
$COMICS_files = array();

$COMICS_path_sz = count($COMICS_path);
for ($i = 0; $i < $COMICS_path_sz; ++$i) {
    $tmp_arr = scandir($COMICS_path[i]);
    if ($tmp_arr !== FALSE) {
        $COMICS_files = array_merge($COMICS_files, $tmp_arr);
    }
}

首先,我們需要理清您所指的“輸出”。 如果您參考echo的結果,則預期結果為“ ARRAY”。

其次,作為“輸出”狀態,您有一個數組。 您需要遍歷數組並插入記錄。

一種更優雅的方法是生成所有插入並將它們立即發送到數據庫服務器,因為應用程序服務器與數據庫服務器之間的通信非常昂貴,也就是說,這需要時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM