2013-07-15 33 views
1

我想按修改日期使用PHP排序文件。排序功能错误filemtime PHP

我使用filemtime功能则sort功能使用下面的代码:

<?php 

$array2 = array(); 
$images = glob("*.*"); 
foreach($images as $image) { 
echo "Last modified: ".date("F d Y H:i:s.",filemtime($image)); 
echo "<br>"; 

array_push($array2,date("F d Y H:i:s.",filemtime($image))); 
} 
//echo array2; 
sort($array2); 
echo "<br>"; 

foreach ($array2 as $ar) 
{ 
    echo $ar; 
    echo "<br>"; 

} 
//$array2[$image] = date("F d Y H:i:s.",filemtime($image)); 

?> 

,输出是这样

Last modified: June 21 2013 15:48:42. 
Last modified: June 12 2013 14:43:10. 
Last modified: April 09 2013 15:39:13. 
Last modified: June 12 2013 14:00:14. 
Last modified: June 21 2013 16:08:58. 
Last modified: July 15 2013 12:44:28. 
Last modified: July 15 2013 12:48:48. 
Last modified: July 15 2013 14:42:19. 
Last modified: July 15 2013 14:54:48. 
Last modified: April 09 2013 15:39:13. 
Last modified: June 21 2013 15:34:30. 
Last modified: June 21 2013 15:56:32. 

April 09 2013 15:39:13. 
April 09 2013 15:39:13. 
July 15 2013 12:44:28. 
July 15 2013 12:48:48. 
July 15 2013 14:42:19. 
July 15 2013 14:54:48. 
June 12 2013 14:00:14. 
June 12 2013 14:43:10. 
June 21 2013 15:34:30. 
June 21 2013 15:48:42. 
June 21 2013 15:56:32. 
June 21 2013 16:08:58. 

在这里你可以看到七月是四月和六月

之间

任何人都可以请指导我的问题?

+1

juLy的'L'按照字母顺序排列在6月份的'N'上......你正在排序一个日期的字符串表示,而不是日期(filemtime()的值)本身 –

+0

是的我现在明白了,谢谢 – Fayed

回答

1

问题是,你正在整理日期的人类可读的表示,所以显然4月首先(它以A开头)。

你需要做的是一样的东西

foreach($images as $image) { 
    array_push($array2, filemtime($image)); 
} 

sort($array2); 

// and now, AFTER sorting get the formatted dates 
foreach ($array2 as $ts) 
{ 
    echo date("F d Y H:i:s.", $ts); 
} 

一些提示:

  1. ,你可以得到你的文件的最后修改时间与

    $array2 = array_map('filemtime', $images); 
    
  2. 只有一行
  3. date取决于系统时区。在做任何事之前,确保你已经用date_default_timezone_set正确设置了它。

+0

谢谢!这解决了我的问题,但如果我想显示排序的日期每个日期除了它的相关文件名称? – Fayed

+0

@Fayed:你可以使用'array_multisort'进行排序,以自动重新排列'$ images'以跟随'$ array2',或者(也许更好),你可以创建一个多维数组,其中每个元素都是一个数组,如'[name, filemtime]'和[对其进行排序](http://stackoverflow.com/questions/96759/how-do-i-sort-a-multidimensional-array-in-php/16788610#16788610)。第二个选项是非常基本的东西,如果你有任何问题,你应该阅读一些关于数组的教程。 – Jon