0

我正在尝试使用以下行按上次修改日期对我的图像数组进行排序。

usort($temp_files, create_function('$a,$b', 'return filemtime($a) - filemtime($b);'));

我的页面设置为显示一个图像,然后在其旁边显示 4 个附加图像。但是很多图像在服务器上的最后修改日期相同,我对这些图像没有太多控制权,因为最终客户端自己上传它们。当日期相同时,有没有办法解决这个问题?

编辑 7/23

所以现在我有以下内容,但它仍然不会按日期排序,有什么想法吗?

function cmp_by_filemtime_and_basename($a, $b) {
    $cmp = filemtime($a) - filemtime($b);
    if ($cmp == 0) {
        $cmp = strcmp(basename($a), basename($b));
    }
    return $cmp;
}

usort($temp_files, 'cmp_by_filemtime_and_basename');
4

1 回答 1

2

你可以扩展你的比较函数来比较basenames 当 sfilemtime相等时:

function cmp_by_filemtime_and_basename($a, $b) {
    $cmp = filemtime($a) - filemtime($b);
    if (0 == $cmp) {
        $cmp = strcmp(basename($a), basename($b));
    }
    return $cmp;
}
于 2012-07-20T15:57:47.887 回答