-1

可能重复:
如何使用 asort() function() 在 php 中按 alpha 投注对值数组进行排序

基本上,脚本从目录中读取图像,然后将它们输出到 html。所以只是试图让这个非常好的脚本以数字方式对图像进行排序。现在它对图像进行排序的方式非常随机。

        if ($handle = opendir($dir)) {
        while (false!== ($file = readdir($handle))) {
        sort($file);
        $ext = strrchr($file,".");
        echo "";
        if(in_array($ext,$good_ext))
        {   
        //do something with file
        echo "<img src='images/".$modelname."/slider/".$file."'>";
        }
        else
        {
        echo "bad";
        }
        }
        closedir($handle);
        }
        else
        {
        echo "$dir Directory does not exist!";
        }
        ?>
4

2 回答 2

0

这应该这样做。

if ($handle = opendir($dir)) {
    while (false!== ($file = readdir($handle))) {
        $ext = strrchr($file,".");
        echo "";
        if(in_array($ext,$good_ext)) {          
            $files[] = $file;
        }

    }
    closedir($handle);

    sort($files);

    //do what what you need with it

}
else {
    echo "$dir Directory does not exist!";
}
?>

$files 将所有文件按您需要的方式排序。

于 2012-09-21T17:28:13.290 回答
0

您可以使用natsort

例子

$img =    "<img src='images/$modelname/slider/%s' />";
$imgExts = array("gif", "jpg", "jpeg", "png", "tiff", "tif");
$files = scandir(__DIR__);
natsort($files);

foreach($files as $file)
{
    $urlExt = pathinfo($file, PATHINFO_EXTENSION);
    if (in_array($urlExt, $imgExts)) {
        printf($img,$file);
    }
}
于 2012-09-21T17:28:17.400 回答