我正在使用usort()和filemtime()按修改日期对文件进行排序,但它会以错误的顺序随机返回文件.我想我错过了一些非常简单但我无法弄明白的东西.

usort($user_files, function($a, $b) {

return filemtime($a) > filemtime($b);

});

foreach ($user_files as $f) {

echo $f . "
";

}

上传文件1.txt … 10.txt以测试显示的结果是:

6.txt

5.txt

4.txt

3.txt

2.txt

1.txt

7.txt Uploaded!

正如所料.然后,当我达到8.txt时:

6.txt

7.txt

5.txt

4.txt

2.txt

3.txt

1.txt

8.txt Uploaded!

另一次,直到我达到10.txt是好的:

7.txt

8.txt

9.txt

6.txt

5.txt

2.txt

3.txt

4.txt

1.txt

10.txt Uploaded!

当ls -t返回时:

10.txt 9.txt 8.txt 7.txt 6.txt 5.txt 4.txt 3.txt 2.txt 1.txt

那么……那里发生了什么?

Debian Wheezy 7.4, up-to-date.

PHP Version 5.4.4-14 deb7u8

Linux pc 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64

FPM/FastCGI

nginx/1.2.1

解决方法:

value_compare_func

The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.

但提供的回调只有“>”操作符:

{

return filemtime($a) > filemtime($b);

}

$a > $b Greater than TRUE if $a is strictly greater than $b.

您对在两个文件时间之间使用“减法”“ – ”运算符的看法,因为Man再次说filemtime是整数(http://www.php.net/manual/en/function.filemtime.php).

if (filemtime($a) === filemtime($b)) return 0;

return filemtime($a) < filemtime($b) ? -1 : 1;

来源:https://www.icode9.com/content-1-278951.html

php对文件排序,php – 使用filemtime()和usort()对文件进行排序会产生随机结果相关推荐

  1. linux的sort如何对时间排序,Linux中用Sort和Tsort对文件进行排序

    通过使用 sort 和 tsort,而不是采取使用 Perl 或 Awk 的较复杂的解决方案,可以节省时间,同时还能避免令人头疼的问题.Jacek Artymiak 将向您说明如何做到这一点. 尽管可 ...

  2. 【Python7】csv/excel/matplotlib,排序/树遍历,线/进程,文件/xml操作,百度人脸API,aiohttp/hal/restful/curl

    文章目录 1.csv 2.excel 3.matplotlib 4.时间复杂度 5.顺序表/链表 6.六种排序 6.1 选择 6.2 插入 6.3 希尔 6.4 冒泡 6.5 快排 6.6 归并 7. ...

  3. 59.排序好的大数据创建索引文件,并实现大文件的二分查找,根据索引百万数据秒读数据...

    创建索引 1 //创建索引 2 struct index 3 { 4 //保存每行偏移的位置 5 int *pindex; 6 //文件的总长度 7 int length; 8 }allindex;/ ...

  4. php按照文件名字排序,php readdir 排序问题,如何按照日期进行排序

    目前是这么写的: function posts_get($directory,$ext) { if (is_dir($directory)) { $handle = opendir($director ...

  5. C语言文件日期排序,C语言产生一个大txt文件,并进行排序

    产生了一个十万行的txt文件,每一行都是一个0-512之间的随机数,并对这个文件进行排序,生成一个递增排序的文件: #define _CRT_SECURE_NO_WARNINGS #include # ...

  6. 【代码】【有统计错误,待修改】统计文件中,不同字符出现的次数(未排序)

    # coding=gbk ''' Created on 2015年12月9日@author: Ryan ''' # 统计文件中,不同字符出现的次数(未排序)import MyDef tag = 1 i ...

  7. IO流案例,集合到文件数据排序、复制单级和多级文件夹及复制文件的异常处理

    目录 一.集合到文件数据排序 二.复制单级文件夹 三.复制多级文件夹 四.复制文件的异常处理 基本做法: JDK7版本改进: JDK9版本改进: 一.集合到文件数据排序 需求: 键盘录入5个学生信息( ...

  8. php文件有哪几种,PHP常用的文件操作函数有哪些

    PHP常用的文件操作函数有哪些 本文主要总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来.欢饮阅读参考! 一 .解析路径: 1 获得文件名: basename(); 给出一个包含有指 ...

  9. linux dd 截文件,Linux使用dd命令快速生成大文件(转)

    dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero ...

最新文章

  1. 审计风险控制流程的起点_审计理论结构的起点和逻辑起点辨析
  2. 阿里P8大牛耗费三年整理的:Java大厂面试题
  3. Pycharm出现out of memory 的终极解决方法
  4. php编译工具 知乎,关于知乎回答问题编辑框用Ctrl+V 粘贴图片是如何实现的详解...
  5. Linux服务器 常用命令
  6. Hadoop入门(十三)远程提交wordCout程序到hadoop集群
  7. Linux 下wifi 驱动开发(二)—— WiFi模块浅析
  8. 有关UITableView--cell复用问题
  9. C#实现两个时间相减的方法
  10. 【深入理解Java虚拟机】自动内存管理机制——垃圾回收机制
  11. 再送 5000 份红包封面!
  12. latex longtable caption长度提前换行解决方案
  13. 飞机航线的获取、配准、制作与统计距离
  14. 机器学习与数据挖掘的学习路线图
  15. SA299学习笔记 第一章 描述接口配置(3)
  16. 医院科室管理系统(IDEA开发)
  17. [附源码]java毕业设计高校学生疫情防控信息管理系统
  18. 高中数学怎么学好如何轻松学好高中数学
  19. 怎么做餐饮行业的引流?
  20. top X 好听的英文歌

热门文章

  1. 汇编指令:push、pop
  2. Friday the Thirteenth
  3. MySQL 5.0 新特性教程 触发器:第一讲
  4. 维护UI状态的最懒惰方法
  5. java 根据条件从list中筛选出符合条件的集合_Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合
  6. 详解Python中函数和模块的特殊属性__annotations__
  7. php获取文件目录文件名,php获取路径中的文件名的方法有哪些
  8. Linux 如何创建进程函数与查看进程
  9. C++ C++基础语法入门总结(二)引用-内联函数-C++11新特性
  10. lisp 河道水面线计算_鹤岗河道用铸铁轻型闸门厂家