Im работает над галереей glob, он показывает evens (показано как изображение) для каждого месяца. Это мой код, чтобы сделать это:Сортировка массива glob, начиная с текущего месяца
$folderGlob = glob("gallery/events/2015/*/");
foreach($folderGlob as $folder){
$fileglob = glob($folder . "*.{jpg,png}", GLOB_BRACE);
foreach($fileGlob as $file){
// lets say i dont have images, but i just echo $file
echo $file;
}
}
выход будет выглядеть следующим образом:
gallery/events/2015/01/01.jpg
gallery/events/2015/02/04.jpg
gallery/events/2015/03/09.jpg
gallery/events/2015/04/21.jpg
gallery/events/2015/05/04.jpg
gallery/events/2015/06/09.jpg
gallery/events/2015/07/21.jpg
... etc
, как вы можете видеть, моя карта структура работает как дата, с именем файла в день и имя карты как месяц. теперь мне нужно отсортировать это так, чтобы текущий монт показывался первым.
вот пример того, что я хочу:
gallery/events/2015/03/09.jpg //current month
gallery/events/2015/04/21.jpg
gallery/events/2015/05/04.jpg
gallery/events/2015/06/09.jpg
gallery/events/2015/07/21.jpg
...
gallery/events/2015/12/02.jpg //lastmonth
gallery/events/2015/01/01.jpg
gallery/events/2015/02/04.jpg
какие-либо советы или трюки?
EDIT: я теперь использовать это:
$currentMonth = date("m");
$month = intval($currentMonth);
foreach ($folderGlob as $folder) {
$folderMonth = intval(basename($folder));
if($folderMonth < $month){
continue;
} else {
print $folderMonth . '<br>';
}
}
foreach ($folderGlob as $folder) {
$folderMonth = intval(basename($folder));
if($folderMonth >= $month){
continue;
} else {
print $folderMonth . '<br>';
}
}
выход:
gallery/2015/03/
gallery/2015/04/
gallery/2015/05/
gallery/2015/06/
gallery/2015/07/
gallery/2015/08/
gallery/2015/09/
gallery/2015/10/
gallery/2015/11/
gallery/2015/12/
gallery/2015/01/
gallery/2015/02/
Либо вам нужно будет помещать файлы в массив, а затем сортировать их перед отображением; или поставить пару тестов, чтобы сначала проверить файл текущей даты, а затем подавить текущую дату с тегом if в вашем цикле –
, а glob - это массив, и я знаю, как пропустить с помощью оператора if, но позволяет сказать я пропустил все один раз перед текущим месяцем, мне все еще нужно их показать после того, как цикл завершил последний месяц –