Php 对动态拉取的文件进行排序

Php 对动态拉取的文件进行排序,php,arrays,sorting,usort,Php,Arrays,Sorting,Usort,我试图从一个目录中动态加载文件,然后按月份对它们进行排序。从七月开始,到六月 这是我到目前为止得到的-- 这是我认为不起作用的代码 谢谢 这些文件为分钟,其名称格式为“月-日-年” 任何人都可以随时修改这些文件 他认为他使用usort函数的方式存在问题 使用该函数。在unix上,此函数将返回文件上次修改时间的日期(但要小心,因为在windows上,这将返回文件创建时间)。您可以使用此功能根据文件的修改时间对文件进行排序,这将适用于您的笔记文本 将文件名转换为并按其排序如何?像这样: $files

我试图从一个目录中动态加载文件,然后按月份对它们进行排序。从七月开始,到六月

这是我到目前为止得到的--

这是我认为不起作用的代码

谢谢

  • 这些文件为分钟,其名称格式为“月-日-年”

  • 任何人都可以随时修改这些文件

  • 他认为他使用usort函数的方式存在问题


  • 使用该函数。在unix上,此函数将返回文件上次修改时间的日期(但要小心,因为在windows上,这将返回文件创建时间)。您可以使用此功能根据文件的修改时间对文件进行排序,这将适用于您的笔记文本

    将文件名转换为并按其排序如何?像这样:

    $files=array('一月二十五日-2012.pdf','二月二日-2012.pdf');
    $sorted_array=array();
    foreach($key=>$file形式的文件){
    $name=explode(“.”,$file);
    $nix_date=strotime($name[0]);//转到unix时间戳
    $sorted_数组[$nix_date]=$name[0];
    }
    //按键排序
    ksort($sorted_数组);
    
    将导致:

     array(2) {
       [1327522320] => string(15) "january-25-2012"
       [1328213520] => string(15) "february-2-2012"
     }
    

    它不起作用。它只是按字母顺序对它们进行排序。对我们来说,把问题缩小一点怎么样?这些是一个委员会的会议记录,需要按月排序,从7月开始,到6月结束。现在它正在按月份的字母顺序对它们进行排序。我试着让它按我想要的方式排序。所以我试着使用usort函数,就像我在前面的一个问题上看到的那样,但它对我不起作用。我认为你应该首先重新构造代码。把它分成多个函数,这样你就可以更容易地保留概述。我不知道这是不是防火的。如果一些编辑在一年内完成了呢。我想我需要根据文件名来做。那么你需要更具体一些。人们会回来编辑会议记录吗?您的文件名是如何存储的?你认为你的哪段代码不起作用?这些都是您在陈述初始问题时应该回答的问题。他们可能会回来编辑会议记录。我想确保他们能够并且不会扰乱排序。我的文件是这样存储的——august-16-2010.pdf。我认为是monthCompare函数和usort命令不起作用了,为什么不把它的名字分成三个不同的字段呢。月、日、年。将每个文件与所有其他文件进行比较,并对其进行排名。首先比较年份,然后比较月份,然后比较日期。对不起,如果我没有阅读你的代码,并给你所有这些其他建议,但这就是这个网站的内容;提供帮助而不是调试某人的全部代码。
     array(2) {
       [1327522320] => string(15) "january-25-2012"
       [1328213520] => string(15) "february-2-2012"
     }