使用 glob() 函数按上次修改日期时间对文件进行排序
glob() 函数是一个功能强大的 PHP 函数,用于将文件与给定的模式。与排序结合使用时,它提供了一种根据特定条件组织文件的有效方法。
问题
如果您需要显示按最后排序的文件数组修改日期时间戳,常见的方法是循环遍历数组并手动将它们排序到新数组中。然而,这种方法可能既耗时又低效。
解决方案
PHP 使用 usort() 函数提供了更高效的解决方案。该函数有两个参数:一个要排序的数组和一个确定元素顺序的比较函数。
以下代码演示了如何使用 usort() 与 glob() 结合对文件数组进行排序按最后修改的日期时间戳:
<?php $myarray = glob("*.*"); usort($myarray, create_function('$a,$b', 'return filemtime($a) - filemtime($b);')); ?>
解释
glob()函数返回与模式“.”匹配的文件数组。然后将 usort() 函数应用于数组。
提供给 usort() 的比较函数使用 filemtime() 函数提取每个文件的修改时间戳并减去它们以确定顺序。此计算的结果用于根据上次修改的日期时间戳对数组进行升序或降序排序。
注意
使用的 create_function() 辅助函数所提供的代码中的内容在 PHP 7.2.0 中已弃用。在 PHP 中定义匿名函数的替代方法包括 lambda 函数或闭包语法。例如:
usort($myarray, function ($a, $b) { return filemtime($a) - filemtime($b); });
以上是如何在 PHP 中使用 glob() 按上次修改日期对文件进行有效排序?的详细内容。更多信息请关注PHP中文网其他相关文章!