按保存日期排序

时间:2014-05-08 22:29:28

标签: php html html5

我希望能够按保存日期对图像进行排序和显示。我的代码没有排序图像?我想要最新的图像......

function my_sort($a,$b){
    if ($a==$b) return 0;
    return ($a<$b)?-1:1;
}

if( isset($_POST['submit']) ){
    $folder = htmlentities($_POST['val1']); 
}
if( isset($folder) ) {
$filetype = '*.*';
$filex = glob($folder.$filetype);
    $count = count($filex);
    $sortedArray = array();
    for ($i = 0; $i < $count; $i++) {
        $sortedArray($filex[$i]);
    }

$div= '';
usort($sortedArray,'my_sort');
foreach (glob($folder.$filetype) as $files) {   
        $div .= '<div class="typeS">';
        $div .= '<li><div class="itemTypes"><input type="image" src="'.$files.'"/><gt_descA>"'.substr($files,strlen($folder),strpos($files, '.') - strlen($folder)).'"</gt_descA></div></li>';
        $div .= '</div>';   
    }
echo $div;
}

2 个答案:

答案 0 :(得分:1)

foreach中,您再次执行glob,而不是循环遍历已排序的数组。将其更改为foreach ($sortedArray as $files) {

答案 1 :(得分:0)

我对您的代码进行了五次更改 1.您的数组正在使用括号填充。我改为使用方括号填充。 2.你的数组没有反映foreach循环的索引。我添加了一个索引。 3.您按文件名排序。我将数组更改为具有上次保存的日期索引,并按上次保存的日期排序 4.排序后,您的最终foreach循环使用原始未排序的数组。我用你的排序数组替换了原始数组。 你有一个太多的关闭括号。我删除了最后一行的右括号。

function my_sort($a,$b){
    if ($a['filesavetime']==$b['filesavetime']) return 0;
    return ($a['filesavetime']<$b['filesavetime'])?-1:1;
}

if( isset($_POST['submit']) ){
    $folder = htmlentities($_POST['val1']); 
}
if( isset($folder) ) {
    $filetype = '*.*';
    $filex = glob($folder.$filetype);
    $count = count($filex);
    $sortedArray = array();
    for ($i = 0; $i < $count; $i++) {
        $sortedArray[$i]['filename'] = $filex[$i];
        $sortedArray[$i]['filesavetime'] = filemtime($filex[$i]);
    }

$div= '';
usort($sortedArray,'my_sort');
foreach ($sortedArray as $file) {   
    $div .= '<div class="typeS">';
    $div .= '<li><div class="itemTypes"><input type="image" src="'.$file['filename'].'"/><gt_descA>"'.substr($file['filename'],strlen($folder),strpos($file['filename'], '.') - strlen($folder)).'"</gt_descA></div></li>';
    $div .= '</div>';   
}
echo $div;