【发布时间】:2014-01-24 11:57:01
【问题描述】:
我正在尝试按年份排序结果,即从文件名中提取的年份。
这些是我正在扫描的文件夹中的 N 个文件:
文件名_2014.jpg
文件名_2013.jpg
文件名_2012.jpg
文件名_2011.jpg
....
....
所以我写了这个函数:
function Archivize() {
$path = opendir('./');
while($read = readdir($path)) {
if($read != '.' && $read != '..') {
$filename = current(explode(".", $read));
$getYear = substr($filename, -4);
?>
<span class="year"><?php echo $getYear ?></span>
<?php
}
}
closedir($path);
}
它基本上可以工作,但我不知道如何按从文件名中提取的年份对结果进行排序。
我读到最好的方法是使用数组然后 sort(),但我真的不知道如何将这个提示应用到我的函数中。
function Archivize() {
$path = opendir('./');
$filesArray = array(); //just defining the array
if ($handle = $path) {
$loop = 1;
while($read = readdir($path)) {
if($read != '.' && $read != '..') {
$filename = current(explode(".", $read));
$getYear = substr($filename, -4);
?>
<span class="year"><?php echo $getYear ?></span>
<?php
echo "file:$read<br/>";
$filesArray[] = $getYear; //add the file into the files array
$loop++;
}
}
closedir($path);
}
}
可能数组的第二个函数是异常的,但我在黑暗中爬行。
更新:
实际上数组打印为:
文件名_2011.jpg
文件名_2012.jpg
文件名_2013.jpg
文件名_2014.jpg
我想逆转它!有可能吗?
【问题讨论】:
-
感谢所有 3 人!!!使用 krsort() 而不是 asort() 修复了 Satish 答案
标签: php arrays sorting filenames