当日期相同时,在php中的修改日期上使用一个数组


Usort an array on modified date in php when date is identical

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

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');

filemtime相等时,您可以扩展比较函数来比较basename

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