簡體   English   中英

Scandir()顯示最新文件夾

[英]Scandir() to show the newest folder

我基本上有一個表單,該表單會在提交時創建一個文件夾,它使用上一個創建的文件夾(例如,文件夾名稱為7),並根據上一個創建的文件夾(7 + 1)創建一個新地圖,從而創建一個名為8的新文件夾等等等

但是,當我創建一個名稱為10的地圖並回顯$latest_dir它仍將顯示9.。而它應該始終顯示最高的數字。

$maindir = scandir("uploads/");
$latest_dir = $maindir[0];
$new_dir = $latest_dir+1;

echo $latest_dir;

這可能是一個愚蠢的問題,但是我對PHP的理解並不好,這是迄今為止唯一無法解決的問題。 任何幫助是極大的贊賞 :)

這是我的代碼,我沒有測試過,但我認為它可以工作。

$maindir = scandir("uploads/");

//remove '.' and '..' folder you can also use a regex to be sur to have only folder with
// number after filter
$mainDir = array_filter($maindir, function ($fileName) {
   if ($fileName !== "." || $fileName !== "..") {
      return TRUE;
   }
   else {
      return FALSE;
   }
}

$maxNumber = 0;

// Browse the array in order get the highest number (maybe you could use natsort() instead
for($i = 0 ; $i < count($mainDir) ; $i++) {
   if($maxNumber > (int) $mainDir[i]) {
      $maxNumber = (int) $mainDir[i];
   }
}

$new_dir = $maxNumber + 1;

我已解決問題,文件夾未正確排序,我將代碼更改為此:

$maindir = scandir("uploads/",1);
rsort($maindir);
$latest_dir = $maindir[0];
$new_dir = $latest_dir+1;

它正確排序文件夾,並始終顯示最高的文件夾名稱。 謝謝大家的幫助:)

暫無
暫無

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

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