0

次の行を使用して、最終更新日で画像の配列を並べ替えようとしています。

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

私のページは、1 つの画像を表示し、その横に 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

比較関数を拡張して、が等しいbasename場合にsを比較できます。filemtime

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 に答える