[英]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.