我正在尝试使用以下行按上次修改日期对图像数组进行排序。
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;
}