2017-06-16 12 views
2

私は最近追加されたフォルダ(日付で名前が付けられています)を見つけなければなりません。問題は、日付を持つすべてのフォルダでdirを取得するときに、配列に日付フォルダだけでなくフォルダのフルパスが含まれていることです。これは私のコード最新の日付のフォルダを取得する

$dirs = array_filter(glob(__DIR__ . '/../../../var/Html/*'), 'is_dir'); 
var_dump($dirs); 
$mostRecent= 0; 
foreach($dirs as $date){ 
    $curDate = strtotime($date); 
    if ($curDate > $mostRecent) { 
     $mostRecent = $curDate; 
    } 
} 
var_dump($mostRecent); 
die(); 

であり、これは私は私は信じている

D:\wamp64\www\mypage\public_html\rest>php index.php cli/pars parseFiles 
array(2) { 
    [0]=> 
    string(111) "D:\wamp64\www\mypage\public_html\rest\application\controllers\cli/../../../var/Html/2017-07-15" 
    [1]=> 
    string(111) "D:\wamp64\www\mypage\public_html\rest\application\controllers\cli/../../../var/Html/2017-07-16" 
} 
int(0) 

を得る出力され

...マイルは、あなたと私のコードの例を与えるとプットをサンプリングしてみよう問題は、var $ dirsには、自分のディレクトリのフルパスが含まれていて、代わりに日付フォルダ名だけが含まれているためです。どうすれば私の問題を克服できますか?ありがとうございます

+2

$dirs = array_filter(glob(__DIR__ . '/../../../var/Html/*'), 'is_dir'); foreach($dirs as $dir) { var_dump(basename($dir)); } 

出力:

あなたのケースでは、それは次のようになります。 – jeroen

+0

これらの結果を配列に入れると、配列を簡単に並べ替えることができます。 – jeroen

答えて

2

basename() - パスの末尾の名前のコンポーネントを返します。あなたは `ベース名を()`使用して探しているディレクトリを取得することができます

string(10) "2017-07-15" 
string(10) "2017-07-16" 
+0

お返事ありがとうございます! –

2

あなたのコードへの解決は以下の通りです。 basenameはフルパス文字列からフォルダー名を取得します。

$dirs = array_filter(glob(__DIR__ . '/../../../var/Html/*'), 'is_dir'); 
var_dump($dirs); 
$mostRecent= 0; 
foreach($dirs as $date){ 
    $curDate = strtotime(basename($date)); 
    if ($curDate > $mostRecent) { 
     $mostRecent = $curDate; 
    } 
} 
var_dump($mostRecent); 
die(); 
+0

お返事ありがとうございます! –

関連する問題