我希望能够按保存日期对图像进行排序和显示。我的代码没有排序图像?我想要最新的图像......
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;
}
答案 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;